クラウドでシステムを作っていると数多くの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>
に以下を追記しました。
個別対策として よく使うのはこちらかも
場所のフォルダ直下に
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 を削除するとダメですね。 ディレクトリのキャッシュがうまくいかないな