VS2015プロジェクトのビルド前のイベントから呼び出すコマンドラインツールを使用しているnugetパッケージがあります。VS2015でプリビルドイベントのnugetパッケージフォルダから実行可能ファイルを呼び出す
相対パスを使用してパッケージフォルダからコマンドを呼び出すことができましたが、その後、nugetパッケージのバージョンまたはパッケージフォルダが変更された場合、そのパスを変更する必要があります。これを行う簡単な方法はありますか?
VS2015プロジェクトのビルド前のイベントから呼び出すコマンドラインツールを使用しているnugetパッケージがあります。VS2015でプリビルドイベントのnugetパッケージフォルダから実行可能ファイルを呼び出す
相対パスを使用してパッケージフォルダからコマンドを呼び出すことができましたが、その後、nugetパッケージのバージョンまたはパッケージフォルダが変更された場合、そのパスを変更する必要があります。これを行う簡単な方法はありますか?
プロジェクトルートにバッチファイルを作成して、ツールを呼び出すことができます。以下のスクリプトと同様です。
@ECHO OFF
SETLOCAL
FOR /R %~dp0\source\packages %%G IN (nunit-console.exe) DO (
IF EXIST %%G (
SET TOOLPATH=%%G
GOTO FOUND
)
)
IF '%TOOLPATH%'=='' GOTO NOTFOUND
:FOUND
%TOOLPATH% %*
GOTO :EOF
:NOTFOUND
ECHO nunit-console not found.
EXIT /B 1
これはこれまでのところ最良の解決策です。私のプロジェクトにはほんの少しの変更しか必要ありませんでした。このユースケースでは、ナゲットを "ハッキング"しなければならないと驚いた。 –
ない本当に:ビルドスクリプトにNugetによってインストールされたツールを使用についてのより詳細な情報は、を参照してください。プロジェクトにコンテンツとしてツールを追加する場合を除きます。これはお勧めしません。 – jessehouwing
Grpc.Tools nugetパッケージは、コマンドラインツールの束をNugetフォルダにドロップします。それらを使う簡単な方法なしですべてのものをナゲットに詰め込むのは変だと思う。 –
トリックは、インストールとアップグレード時に正しいパスでプロジェクトファイルを更新することです。特定の名前のターゲットを追加するだけで、バージョンを変更するたびにその名前を削除して再追加することができます。それはちょうどその方法です。いくつかのことは容易ではありません。 – jessehouwing