「Nuget」タグアーカイブ

C#:SpatiaLiteをNuGetで導入!

少し時間が出来たので、GISの開発を、少しだけ手を付けた!
と思いきやすでにVS2019に、VS2017で十分だったが、とりあえずって事で
結局のところ
パッケージ ‘mod_spatialite 4.3.0.1’ をインストールできませんでした。このパッケージを ‘.NETFramework,Version=v4.5’ を対象とする
プロジェクトにインストールしようとしていますが、そのフレームワークと互換性があるアセンブリ参照またはコンテンツ ファイルがパッケージに含まれていません
。詳細については、パッケージの作成者に問い合わせてください。
となる。
4.5から4.7ダメでした。
ようやく気付いたのはこれ!
package.configを使うとProjectファイルにもパッケージ参照の記述があって、それらの整合性がとれなくなると、パッケージを読み込めません系のエラーがでる
PackageReferenceを使えば、不整合も起きにくく、パッケージがないときはソリューションファイルの右クリックから「パッケージの復元」をすればよいはず。
SnapCrab_NoName_2020-10-17_18-27-36_No-00

SnapCrab_NoName_2020-10-17_18-27-59_No-00

SnapCrab_NoName_2020-10-17_18-28-10_No-00

これでOK
SnapCrab_NoName_2020-10-17_18-52-55_No-00

c#:Nugetを効率よく管理する方法

クラウドでシステムを作っていると数多くのNugetなどのパッケージや共通ライブラリ
が累積して大変
それでも、依存を考えれば仕方ないかなーと利用していたが
あろう事かやってしまった。
シンクロ状態で開発を実施。
ファイルのデッドロックでクラウドリンクが複数できたり、フォルダが(1)付きになる。
これは、致命的だった。
ガックシ!
対策として、パッケージをクラウドに関係のないフォルダに移動。

まず適当なところに
C:\temp\VS2017_pkg
のフォルダを作成
結局圧迫するので別フォルダでもいい!

次にエクスプローラで以下を入れて
%APPDATA%\NuGet\NuGet.Config
エディターが開くので まず共有開発の対策
このような表示だと
<?xml version=”1.0″ encoding=”utf-8″?>
<configuration>
<packageSources>
<add key=”nuget.org” value=”https://api.nuget.org/v3/index.json” protocolVersion=”3″ />
</packageSources>
<disabledPackageSources>
<add key=”Microsoft and .NET” value=”true” />
</disabledPackageSources>
</configuration>

このように追加

<?xml version=”1.0″ encoding=”utf-8″?>
<configuration>
<packageSources>
<add key=”nuget.org” value=”https://api.nuget.org/v3/index.json” protocolVersion=”3″ />
    <add key=”repositoryPath” value=”C:\temp\VS2017_pkg” />
</packageSources>
<disabledPackageSources>
<add key=”Microsoft and .NET” value=”true” />
</disabledPackageSources>
</configuration>

に以下を追記しました。
個別対策として よく使うのはこちらかも

SnapCrab_NoName_2018-3-23_9-19-31_No-00

場所のフォルダ直下に
C:\source\repos\WindowsFormsApp1\Nuget.Config
をメモ帳などで作成

Nuget.Config の中身は

<?xml version=”1.0″ encoding=”utf-8″?>
<configuration>
<config>
<add key=”repositoryPath” value=”C:\temp\VS2017_pkg” />
</config>
</configuration>

これでVSを起動させNuget管理を開くと復元!と出るようになる。

もし、ここで関連パッケージを復元か違うパッケージをインスコすれば、すべてC:\temp\VS2017_pkgの直下に復元される

ここからがキモ かも
何とか.csproj を探して

<HintPath>..\packages\ClosedXML.0.91.0\lib\net452\ClosedXML.dll</HintPath>

これを
<HintPath>C:\temp\VS2017_pkg\DocumentFormat.OpenXml.2.8.1\lib\net40\DocumentFormat.OpenXml.dll</HintPath>

最後に、packagesのフォルダを削除して終了

packages を削除するとダメですね。 ディレクトリのキャッシュがうまくいかないな