NuGet软件包参考和版本

问题描述:

我尝试爬过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

我应该手动更改每个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库中找到与相同版本相同的软件包。所以这个命令不会更新包的版本。

希望这会有所帮助。