web-dev-qa-db-ja.com

Visual Studio 2017で使用されるNuGetパッケージフォルダーを変更する

packagesまたはproject.jsonベースの.NET Coreプロジェクトには、csprojソリューションフォルダーはありません。

NuGet CLI は、使用されているキャッシュフォルダーのリストを取得します。

nuget locals all -list

応答:

http-cache: C:\Users\<foo>\AppData\Local\NuGet\v3-cache
global-packages:  C:\Users\<foo>\.nuget\packages\
temp: C:\Users\<foo>\AppData\Local\Temp\NuGetScratch

これらの場所を変更または上書きする方法は?

28
Ilya Chumakov

キャッシュの場所

ソリューションローカルパッケージフォルダーは、.NET CoreおよびVisual Studio 2017にはもう存在しません。

NuGetはMSBuildに完全に統合されました:

ソリューションローカルパッケージフォルダーは使用されなくなりました–パッケージは、ソリューション固有のパッケージフォルダーではなく、%userdata%.nugetのユーザーのキャッシュに対して解決されるようになりました。これにより、ワークステーションでパッケージの共有フォルダーを使用することにより、PackageReferenceの実行が高速になり、ディスク容量が少なくなります。

NuGet 4.0+は、少なくとも2つのグローバルパッケージの場所を使用します。

  • ユーザー固有:%userprofile%\.nuget\packages\
  • マシン全体:%ProgramFiles(x86)%\Microsoft SDKs\NuGetPackages\"

次のコンソールコマンドを使用して、すべてのユーザー固有のフォルダーを一覧表示できます。

nuget locals all -list

マシン全体のフォルダがそこにリストされていないことに注意してください。ただし、Visual Studioの設定で定義されます。

Options -> NuGet Package Manager -> Package Sources

構成ファイル

NuGet.configファイル ここにあります

  • ユーザー固有:%APPDATA%\NuGet\
  • マシン全体:%ProgramFiles(x86)%\NuGet\Config\

多くのレベルでNuGet設定を変更およびオーバーライドできます。

  • 事業
  • 解決
  • ユーザー
  • 機械

さらにもっと! NuGet.config階層的な優先順位の詳細については、こちらをご覧ください。 設定の適用方法

たとえば、globalPackagesFolderパラメーターは、パッケージキャッシュの場所を変更します。このNuGet.configの例を見てください:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <clear />
    <add key="globalPackagesFolder" value="c:\packages" />
  </config>
</configuration>
51
Ilya Chumakov

MS docs から:

global‑packages

  • Windows:%userprofile%.nuget\packages
  • Mac/Linux:〜/ .nuget/packages

NUGET_PACKAGES環境変数、globalPackagesFolderまたはrepositoryPath構成設定(PackageReferenceおよびpackages.configを使用する場合)、またはRestorePackagesPath MSBuildプロパティ(MSBuild)を使用してオーバーライドしますのみ)。 環境変数は構成設定より優先されます。

1
Michael