NuGet のパッケージの場所を変更することは可能ですか? 質問する

NuGet のパッケージの場所を変更することは可能ですか? 質問する

私のほとんどのプロジェクトでは、次のような慣例に従っています。

/src
    /Solution.sln
    /SolutionFolder
        /Project1
        /Project2
        /etc..
/lib
    /Moq
        moq.dll
        license.txt
    /Yui-Compressor
        yui.compressor.dll
/tools
    /ILMerge
        ilmerge.exe

ソース フォルダー内に外部ライブラリを保存していないことにお気づきでしょう。NuGet の使用にも非常に興味がありますが、これらの外部ライブラリをソース フォルダー内に保存したくありません。NuGet には、すべてのパッケージがロードされるディレクトリを変更する設定がありますか?

ベストアンサー1

パッケージがインストールされるフォルダーを制御できるようになりました。

http://nuget.codeplex.com/workitem/215

編集: 2010 年 12 月 10 日午後 11 時 45 分の Phil Haack のコメントを参照してください (作業項目内/上記リンク内)。サポートは 1.0 で部分的に実装されていますが、文書化されていません。

@dfowler によると、次のようにソリューションの横に nuget.config ファイルを追加します。

<settings>
<repositoryPath>{some path here}</repositoryPath>
</settings>

があるナゲットパッケージパッケージ フォルダーのオーバーライドを作成します。

バージョン 2.1 へのアップデート

Azatがコメントしたように、パッケージの場所を制御する方法についての公式ドキュメントができました。2.1 のリリースノートnuget.config ファイルで次の構成を指定します (構成ファイルを配置する有効な場所と階層構成モデルの動作については、リリース ノートを参照してください)。

<configuration>
  <config>
    <add key="repositoryPath" value="C:\thePathToMyPackagesFolder" />
  </config>
  ... 
</configuration>

これにより、ファイルを配置した構成レベルのパッケージ フォルダーが変更されます (ソリューション ディレクトリに配置した場合はソリューション、プロジェクト ディレクトリに配置した場合はプロジェクトなど)。リリース ノートには次のように記載されています。

[...] ソリューション ルートの下に既存のパッケージ フォルダーがある場合は、NuGet が新しい場所にパッケージを配置する前に、そのフォルダーを削除する必要があります。

おすすめ記事