package.config更新不会更新引用

时间:2017-04-18 18:17:25

标签: c# dll nuget nuget-package nuget-package-restore

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

现在,我还在其他项目上更新了package.config,希望只要我对NuGet引擎进行升级,就会看到并获取新的DLL。好吧,它没有发生。之后我尝试了一些事情,但没有一个能够奏效:

  1. 删除旧版本的DLL,然后执行还原包
  2. 删除packages文件夹,重新启动我的VS 2015并恢复软件包
  3. 另外,有趣的是,当我去管理Nuget Packages并查看我需要新DLL的软件包时,它表明它已经是新版本,我不需要升级它。

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

2 个答案:

答案 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