2

Nuget は、プロジェクト内のパッケージを復元するときにスクリプトを実行しません。

シナリオは次のとおりです。カスタム NuGet パッケージがインストールされているプロジェクトがあります。このプロジェクトでは、ソリューションに対して NuGet パッケージの復元が有効になっています。これはすべて問題なく機能しており、TFS からプロジェクトを空のフォルダーに取得して何度もテストしました。

init.ps1 と install.ps1 を nuGet パッケージに追加しました。パッケージは引き続き正しくフェッチされ、インストールされますが、パッケージを手動でインストールしない限り、スクリプトは実行されません。

正確には、初めて TFS からプロジェクトを取得すると、init.ps1 も install.ps1 も実行されません。

ただし、ソリューションを閉じて再度開くと、init.ps1 は (予想どおり) 実行されますが、パッケージが既に復元/インストールされているため、もちろん install.ps1 は実行されません。

パッケージを手動でインストール/アンインストールすると、両方のスクリプトが正常に実行されます (つまり、パッケージが「復元」されている場合は実行されません)。

私のインターネット検索では、この動作への言及は見つかりませんでした。明らかな何かが欠けていますか、それともパッケージが復元されたとき、これは正常ですか?

4

1 に答える 1

1

パッケージの復元機能を使用して、すべてのパッケージがソース管理にチェックインされるわけではありません。./solution/packagesそのため、ビルド時にアセンブリ パスと参照を正しく解決できるように、NuGet パッケージをフォルダーにプルダウンするだけです。NuGet は、復元の一部として再インストールを行いません。つまり、復元で xml ファイルの変換を実行したり、PowerShell のインストール/アンインストール スクリプトを実行したりしません。

于 2014-03-13T20:46:39.553 に答える