2015-09-30 47 views
5

我們有許多在CI中構建的庫,每次構建時都會部署預發佈。其他項目依賴於這些並在構建期間自動更新它們。什麼控制NuGet包中引用的特定版本屬性?

但是引用是使用Specific Version = true設置的,這意味着增加這些dll的版本號會導致構建失敗。

如何控制屬性的設置?

回答

4

您不能在不更改源代碼的情況下更改NuGet的行爲。在Visual Studio中添加非GAC程序集時添加NuGet will always sets SpecificVersion to true

您需要運行某種後期構建腳本來修復引用或手動更改它們。

不確定如何更新您的CI服務器中的項目。如果您使用NuGet.exe update project.csproj,那麼它將更新到最新的NuGet包,並且不會將SpecificVersion設置爲true。但是,命令行應用程序不支持PowerShell腳本或內容文件,只會更新引用。這也假設有更新可用,否則參考不會被修改。

+0

我使用從命令行恢復的NuGet來獲取我的解決方案的所有包。這些軟件包的版本類似於1.0.0-最新版本,其中沒有一個版本號更改爲新版本,我無法通過命令行完成此項工作。該DLL確實得到了第四個版本號,這是svn號碼。每個版本的這個數字都會增加。 – Julius

+0

在你的回答中,你會說nuget總是將SpecificVersion設置爲true,但是如果你使用Nuget.exe更新project.csproj,那麼稍後你會說這將更新到最新的NuGet包並且不會設置SpecialVersion(假設你的意思是SpecificVersion)爲真。通過不設置SpecificVersion是否意味着它會使用默認的似乎是真的? –

+0

命令行nuget在visual studio中的行爲與nuget 2不同。 –