我有多个项目引用相同的NuGet包。当我得到最新的代码时,我意识到其中一个项目有一个更新的package.config,并且还更新了对该软件包提供的Dll的引用。
现在,我还在其他项目上更新了package.config,希望只要我对NuGet引擎进行升级,就会看到并获取新的DLL。好吧,它没有发生。之后我尝试了一些事情,但没有一个能够奏效:
另外,有趣的是,当我去管理Nuget Packages并查看我需要新DLL的软件包时,它表明它已经是新版本,我不需要升级它。
有什么方法可以让NuGet引擎升级这些软件包吗?
答案 0 :(得分:19)
仅编辑packages.config文件不会导致Visual Studio对项目进行任何更改。 NuGet还原也不会修改您的项目。 NuGet恢复只需下载NuGet包并使它们可用于您的项目。
我只是使用Visual Studio中的NuGet包管理器或包管理控制台来更新所需项目中的NuGet包,而不是编辑packages.config文件。
其他替代方法包括更新项目文件(.csproj)以使用正确的更新程序集引用。或者您可以运行Update-Package -reinstall
以强制卸载NuGet包并再次安装在项目中。这将修复程序集引用。
答案 1 :(得分:0)
如果您的解决方案可以由Visual Studio 2017打开,我建议使用最新的PackageReference来管理nuget。 Packages.config有几个缺点,PackageReference解决了这些问题。
以下是迁移到PackageReference的解决方案: https://github.com/NuGet/Home/wiki/Packages.config-to-PackageReference-Migrator
此外,您可以使用此vs扩展: https://marketplace.visualstudio.com/items?itemName=TaylorSouthwickMSFT.NuGetPackagetoProjectjsonConverter