はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【.NET】dotnet toolのglobalなインストール先パスの決定方法

はじめに

今回はdotnet toolをglobalにインストールした時にどのようなパスにインストールされるのか調べたので、その結果を備忘録も兼ねて残しておきたいと思います。

インストール先

以下の優先順位で決定されます。

  1. $DOTNET_CLI_HOMEという環境変数が設定されていれば$DOTNET_CLI_HOME/.dotnet/tools
  2. Linux/Macの場合は$HOME/.dotnet/toolsWindowsの場合は%USERPROFILE%\.dotnet\tools
  3. HOMEUSERPROFILEが設定されていない場合はエラーになる

実験

MacOSかつPowerShellでの実験になります。

# デフォルトのパス
$ dotnet tool install dotnet-t4 -g
$ Test-Path $env:HOME/.dotnet/tools/t4  
True

$env:DOTNET_CLI_HOME = "/Users/user/sandbox"     

# t4をインストールしてパスを変更できているのかチェック
$ dotnet tool install dotnet-t4 -g
$ cd /Users/user/sandbox
$tree -a -L 3
.
├── .dotnet
│   ├── ...
│   └── tools
│       ├── .store
│       └── t4
├── .local
│   └── share
│       └── NuGet
└── .nuget
    └── NuGet
        └── NuGet.Config
$ Test-Path ./.dotnet/tools/t4
True

# $HOME/.dotnet/toolsに戻る
$ Remove-Item Env:DOTNET_CLI_HOME