.NET Core ツール
dotnet
コマンドで、tool
SDK コマンドを使うと、 NuGet パッケージを使ったツールの管理をすることができます。
コマンド | 説明 |
---|---|
dotnet tool install | ツールをインストールする |
dotnet tool list | インストールされているグローバルツールやローカル ツールの一覧と呼び出すコマンド名なども表示する |
dotnet tool uninstall | ツールをアンインストールする |
dotnet tool update | ツールをアップデートする |
インストール
グローバルツール
グローバルツールとしてインストールする場合は、-g
もしくは --global
オプションを使用します。
dotnet tool install -g MessagePack.Generator
dotnet tool install --global MessagePack.Generator
既定のインストール先は、C:\Users\[your name]\.dotnet\tools
です。
インストール場所を任意のパスにするには、--tool-path
オプションを使用します。
この方法は環境変数に追加されないので、適宜対応する必要があります。
dotnet tool install MessagePack.Generator --tool-path C:\dotnet\tools
ローカルツール
ローカルツールとしてインストールする場合は、マニフェストファイルを追加する必要があります。ローカルツールは、現在のディレクトリとそのサブディレクトリが対象となります。そのため、通常はリポジトリのルートに追加します。
マニフェストファイルは、.config\dotnet-tools.json
に作成されます。
dotnet new tool-manifest dotnet tool install MessagePack.Generator
マニフェストファイルの次の通りになります。
{ "version": 1, "isRoot": true, "tools": { "messagepack.generator": { "version": "2.2.60", "commands": [ "mpc" ] } } }
リポジトリからクローンした場合は、ツールがインストールされていないので、ルートディレクトリで復元を実行します。
dotnet tool restore
また、特定のバージョンをインストールして使いたい場合は、--version
オプションを使用することができます。バージョン番号は、NuGet Gallery などで確認できます。
dotnet tool install MessagePack.Generator --version 2.1.80
ツールを使用する
コマンドを確認する
インストールしたツールのコマンドは dotnet tool list
で確認できます。グローバルツールを確認する場合は、-g
オプションを使用します。
> dotnet tool list -g パッケージ ID バージョン コマンド ------------------------------------------- messagepack.generator 2.2.60 mpc dotnet-mlb 0.4.1 dotnet-mlb
ローカルツールを確認する場合は次のようになります。
> dotnet tool list パッケージ ID バージョン コマンド マニフェスト ---------------------------------------------------------------------------------------------------- messagepack.generator 2.2.60 mpc C:\Project\DotnetSampleProject\.config\dotnet-tools.json
グローバルツールを呼び出す
グローバルツールの場合は、ツールコマンドを単独で呼び出します。
mpc dotnet-mlb
コマンドのプレフィックスに dotnet-
が付いている場合は、dotnet
コマンドを使うこともできます。呼び出す時は、プレフィックス部分の省略します。
dotnet mlb
dotnet
コマンドを使う場合は、ローカルツールの呼び出し方と同じになるため、ローカルツールを利用している環境では注意が必要です。
ローカルツールを呼び出す
ローカルツールの場合は、dotnet
コマンドを使用します。プレフィックスは省略してもしなくても呼び出せます。
また、マニフェストをインストールしたディレクトリ内で実行する必要があります。
dotnet mpc dotnet dotnet-mlb dotnet mlb
プレフィックス dotnet-
.NET Core のツールは、パッケージを作成する時に ToolCommandName
を設定します。NuGet で提供される実行ファイルは、<ToolCommandName>.exe
になります。
この名前にプレフィックス dotnet-
を付けると、提供される実行ファイルの名前も dotnet-<ToolCommandName>.exe
となります。
ToolCommandName | 実行ファイル名 | グローバル | ローカル |
---|---|---|---|
ToolName | <ToolName>.exe |
ToolName |
dotnet ToolName |
dotnet-ToolName | dotnet-<ToolName>.exe |
dotnet-ToolName dotnet ToolName |
dotnet dotnet-ToolName dotnet ToolName |