package.config更新不更新引用

package.config update does not update the references

我有多个项目引用同一个 NuGet 包。当我获得最新代码时,我意识到其中一个项目更新了 package.config 并且还更新了对该包提供的 Dll 的引用。

现在,我还更新了 package.config 其他项目,希望一旦我对该 NuGet 引擎进行升级,就会看到它并为我获取新的 DLL。好吧,它没有发生。之后,我尝试了以下操作,其中 none 成功了:

  1. 删除旧版本的DLL,然后做还原包
  2. 正在删除包文件夹,重新启动我的 VS 2015 并恢复包

此外,有趣的是,当我去管理 Nuget 包并查看我需要新 DLL 的包时,它显示它已经是新版本,我不需要升级它。

有什么方法可以让 NuGet 引擎升级这些包?

仅编辑 packages.config 文件不会导致 Visual Studio 对您的项目进行任何更改。此外,NuGet 恢复不会修改您的项目。 NuGet 恢复仅下载 NuGet 包并使它们可用于您的项目。

我不会编辑 packages.config 文件,而是使用 Visual Studio 中的 NuGet 包管理器或包管理控制台来更新所需项目中的 NuGet 包。

其他替代方法包括更新项目文件 (.csproj) 以使用正确的更新程序集引用。或者您可以 运行 和 Update-Package -reinstall 强制卸载 NuGet 包并在项目中重新安装。这将修复程序集引用。

如果你的解决方案可以在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