NuGet包参考&版

时间:2017-10-16 13:09:24

标签: visual-studio nuget

我尝试浏览NuGet和Visual Studio的文档,但没有找到我的问题的确切答案。也是使用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”。对于像我这样的场景,这是最好的首选方法吗?

1 个答案:

答案 0 :(得分:2)

  

我应该手动更改每个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更新所有项目。右键单击您的解决方案(而不是项目),选择Manager NuGet Packages for Solution,切换到Updates选项卡,选择您需要升级的软件包,然后选择要更新软件包的项目:

enter image description here

此外,Update-Package -reinstall用于重新安装软件包,使用此命令比删除软件包更容易,然后尝试使用相同版本在NuGet库中找到相同的软件包。因此,此命令不会更新软件包的版本。

希望这有帮助。