package.config更新不会更新引用

问题描述:

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

现在,我还更新了其他prjects上的package.config,希望在我对该NuGet引擎进行升级后立即看到并获取新的DLL。那么,它没有发生。从那以后,我尝试下面的事情和他们没有工作:

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

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

我有什么办法可以让NuGet引擎升级这些软件包吗?

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

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

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

+0

“更新-包-reinstall”肯定使我丢失的引用被添加到我的项目后,我手动编辑packages.config文件。 –

如果您的解决方案可以通过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