我尝试浏览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”。对于像我这样的场景,这是最好的首选方法吗?
答案 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选项卡,选择您需要升级的软件包,然后选择要更新软件包的项目:
此外,Update-Package -reinstall
用于重新安装软件包,使用此命令比删除软件包更容易,然后尝试使用相同版本在NuGet库中找到相同的软件包。因此,此命令不会更新软件包的版本。
希望这有帮助。