2017-04-18 129 views
4

我有多個項目引用相同的NuGet包。當我得到最新的代碼時,我意識到其中一個項目具有更新的package.config,並且還更新了該包提供的對Dll的引用。package.config更新不會更新引用

現在,我還更新了其他prjects上的package.config,希望在我對該NuGet引擎進行升級後立即看到並獲取新的DLL。那麼,它沒有發生。從那以後,我嘗試下面的事情和他們沒有工作:

  1. 刪除舊版本的DLL,然後做恢復包
  2. 刪除包文件夾,重新啓動我的VS 2015和恢復包

另外,有趣的是,當我去管理Nuget Packages並查看我需要新DLL的包時,它顯示它已經在新版本中,我不需要升級它。

我有什麼辦法可以讓NuGet引擎升級這些軟件包嗎?

回答

9

只編輯packages.config文件不會導致Visual Studio對您的項目進行任何更改。此外NuGet恢復不會修改您的項目。 NuGet恢復只需下載NuGet包並使其可用於您的項目。

而不是編輯packages.config文件我只是使用Visual Studio中的NuGet包管理器或包管理控制檯來更新所需項目中的NuGet包。

其他替代方法包括更新項目文件(.csproj)以使用正確的更新程序集引用。或者,您可以運行Update-Package -reinstall強制NuGet軟件包被卸載並重新安裝到項目中。這將修復程序集引用。

+0

「更新-包-reinstall」肯定使我丟失的引用被添加到我的項目後,我手動編輯packages.config文件。 –

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