2017-10-16 244 views
0

我嘗試爬過NuGet和Visual Studio的文檔,但沒有找到我的問題的確切答案。我也是使用NuGet的新手。NuGet軟件包參考和版本

如果我有一個packages.config象下面這樣:

<packages> 
    <package id="xxx.SomePackage" version="1.0.1" targetFramework="net452" /> 
</packages> 

而在我的.csproj的項目類似的提法:

<Reference Include="xxx.SomePackage, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> 
    <HintPath>..\packages\xxx.SomePackage.1.0.1\lib\net45\xxx.dll</HintPath> 
    <Private>True</Private> 
</Reference> 

假設我有我想要的一個新版本要使用的項目,即1.0.2,我應該手動更改每個csproj/packages.config引用以指向該版本,還是NuGet足夠聰明,只能將最新版本應用到我的項目中?我有很多項目,所以每個人都需要改變。

注:我讀了關於使用SpecificVersion:False。那是我可以使用的東西嗎? 注意:我還閱讀了「Update-Package -reinstall」。這是像我這樣的場景最好的和首選的方法嗎?

+0

您將不得不手動將軟件包升級到最新版本。 VS確實有NuGet Package Manager來幫助您升級解決方案的所有軟件包。 –

+0

@Adi,這個問題的任何更新?你解決了你的問題嗎?如果沒有,請讓我知道關於這個問題的最新信息。 –

+0

@ Leo-MSFT感謝您的信息,這當然有幫助,我對此做了記錄。將很快嘗試控制檯更新,我會回覆你的答案,如何去^^ – Adi

回答

1

我應該手動更改每個csproj/packages.config引用以指向該版本還是NuGet足夠智能以獲取並僅將最新版本應用於我的項目?我有很多項目,所以每個項目都需要改變是一件很痛苦的事情。'

不,您不需要手動更改每個csproj/packages.config引用以指向該版本。 NuGet足夠聰明,只需將最新版本應用於您的項目。

您可以在包管理器控制檯中使用命令行Update-Package -Id <package_name> -Version 1.0.2,但不指定任何特定項目,Update-Package會影響解決方案中的所有項目。有關更多詳細信息,請參閱update-package

或者,您也可以通過Manager NuGet Packages for Solution更新所有項目。右鍵單擊您的解決方案(沒有項目),選擇經理的NuGet的解決方案包,切換到更新選項卡,選擇您需要升級的包,然後選擇項目要更新軟件包:

enter image description here

除了,Update-Package -reinstall用於重新安裝軟件包,使用此命令比刪除軟件包更容易,然後試圖在NuGet庫中找到與相同版本相同的軟件包。所以這個命令不會更新包的版本。

希望這會有所幫助。

相關問題