2015-09-30 6 views
5

私たちは、ビルドするたびに前売りを展開する、CIでビルドされた多くのライブラリを持っています。他のプロジェクトはこれらに依存し、ビルド時に自動的に更新されます。NuGetパッケージ内の参照のSpecific Versionプロパティを制御するものは何ですか?

しかし、参照はSpecific Version = trueで設定されています。つまり、これらのdllのバージョン番号を増やすとビルドが失敗します。

プロパティの設定を制御するにはどうすればよいですか?

答えて

4

ソースコードを変更せずにNuGetの動作を変更することはできません。 NuGet will always sets SpecificVersion to true Visual Studio内で非GACアセンブリを追加する場合。

参照を修正するか、手動で変更するために、ポストビルドスクリプトを実行する必要があります。

CIサーバーのプロジェクトをどのように更新するのか正確にはわかりません。 NuGet.exe update project.csprojを使用すると、最新のNuGetパッケージに更新され、SpecificVersionをtrueに設定しません。ただし、コマンドラインアプリケーションはPowerShellスクリプトやコンテンツファイルをサポートしていないため、参照のみが更新されます。これはまた、利用可能な更新があると仮定し、そうでない場合、参照は変更されない。

+0

コマンドラインからNuGet restoreを使用して、私のソリューション用のすべてのパッケージを取得します。パッケージはバージョン1.0.0のようにバージョンアップされています。新しいビルドではバージョン番号が変更されず、コマンドラインからその作業を行うことができませんでした。 dllはsvn番号である4番目のバージョン番号を取得します。この数値は、ビルドごとに増加します。 – Julius

+0

答えでは、Nugetは常にSpecificVersionをtrueに設定しますが、Nuget.exe update project.csprojを使用すると、最新のNuGetパッケージに更新され、SpecialVersionを設定しません。本当に。 SpecificVersionを設定しないと、それは本当のように思われるデフォルトを使用するでしょうか? –

+0

コマンドラインnugetは、visual studioのnuget 2とは動作が異なります。 –

関連する問題