noxi雑記

.NET、Angularまわりの小ネタブログ

Nugetのグローバルキャッシュディレクトリを変更する

Qiitaからの移植

やりたいこと

具体的にいつから変わったのかは知らないのですが、Visual Studioで.NET Coreや.NET Standardのプロジェクトを作成するとcsprojファイルが大変シンプルにました。そしてNugetの依存パッケージが従来のソリューションディレクトリ下のPackagesディレクトリではなく、どこかのグローバルキャッシュディレクトリに保存されるようになりました。それ自体はとても嬉しいのですが、段々とCドライブの容量を圧迫し始めたため、別のドライブに移動をしたいなぁ、、、と。

TL;DR

ユーザー毎の設定なら %APPDATA%\NuGet\NuGet.Config に、全ユーザー設定なら %ProgramFiles(x86)%\NuGet\Config\***.config に対して、 globalPackagesFolder というキーで変更先のキャッシュディレクトリを記述する。なお、今回はユーザー毎の設定のみ変更して動作を確認したため、全ユーザー向けは動作未確認。

環境

変更するには

標準のグローバルキャッシュディレクトリの位置

標準のグローバルキャッシュディレクトリはユーザーディレクトリの下、 %UserProfile%\.nuget\packages (ex. C:\Users\noxi\.nuget) です。私の場合5GB超ありました。重すぎる。。

設定ファイルのパス

設定ファイルには二種類あります。全ユーザー共通の設定ファイルと、ユーザー個別の設定ファイルです。今回は個別ユーザーの設定ファイルを変更しました。

種別 パス
全ユーザー %ProgramFiles(x86)%\NuGet\Config\***.config
個別ユーザー %APPDATA%\NuGet\NuGet.Config C:\Users\noxi\AppData\Roaming\NuGet\Nuget.Config

キャッシュディレクトリの設定

キャッシュディレクトリの位置を変更するには、設定ファイルに以下の様に globalPackagesFolder を記述します。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="globalPackagesFolder" value="F:\.nuget\packages" />
  </config>
</configuration>

参考