dotnet tool メモ

dotnet cli には dotnet tool と言って、(コンソール)アプリケーションを管理できる機能がある。 雑多なコードをほぼほぼC#でしか書いていないのであれば、これで管理しておけば少し楽になるかも?と思った次第。

つかう

$ dotnet tool install -g xxx

でグローバル(所定のパス)にxxxパッケージのアプリケーションがインストールされる。
アプリケーションの実行方法はインストール時にコンソールに表示されるのでそれに従う。

環境を汚さないようにローカルインストールもできる。その場合は

$ dotnet new tool-manifest

で設定ファイルを作った後に

$ dotnet tool install xxx

でインストールする(-gオプションが要らない)。
その際、設定ファイルが更新されるので、それを他所の環境に持って行って

$ dotnet tool restore

すると状態を復元できる。

パッケージの取得は、ライブラリとかのパッケージと同じくnuget.orgからとなる。これ以外から持ってきたい場合は

$ dotnet nuget add source yyy -n zzz

として、yyyy を新たな参照先として追加できる(-n zzzで管理用の名前を付けておくと楽)。もしくは

$ dotnet tool install --add-source yyy xxx

として、一時的に参照する。

ツールを更新する場合は以下(グローバルの場合は-gオプションが必要)。

$ dotnet tool update xxx

dotnet nuget add sourceせずに--add-source付きでインストールしていた場合は、更新時にも--add-sourceが要る。

もちろんアンインストールもできる(グローバルの場合は-gオプションが必要)。

$ dotnet tool uninstall xxx

つくる

*.csprojファイルに<PackAsTool>true</PackAsTool>を追加しdotnet packすれば dotnet tool 用のパッケージができる。
参考記事は以下。

後は、PackageIdプロパティでパッケージ名、ToolCommandNameプロパティでコマンド名をそれぞれ指定できる。
無指定の場合は、csprojのファイル名が使われる(たぶん)。

バージョンはVersionプロパティで指定できるが、gitのtagなどから値を取得して

$ dotnet pack -p:PackageVersion=vvv

とかした方がおそらく管理しやすいだろう

dotnet 

See also