使用nuget.client dll解决冲突的依赖关系

时间:2018-11-06 18:18:36

标签: visual-studio-2017 nuget vsix

如何解决Visual Studio扩展与内置的nuget软件包管理器之间相互冲突的依赖关系?我收到一个错误,提示Nuget.PackageManagement.VisualStudio, Version=5.0.0.0正在尝试解决Microsoft.VisualStudio.ProjectSystem, Version=16.0.0.0,但找不到它。我没有为列出的版本引用这些软件包中的任何一个。我引用的是Nuget.PackageManagement.VisualStudio, Version=4.8.0.6,而我引用的不是Microsoft.VisualStudio.ProjectSystem。我去添加了这些软件包,但是即使查看预发行软件包,nuget.org上也不存在Nuget.PackageManagement.VisualStudio的5.0版本和Microsoft.VisualStudio.ProjectSystem的16.0版本。

我知道我可以从C:\Documents and Settings\<my user>\AppData\Local\Microsoft\VisualStudio\15.0_c9b36733Exp\Extensions\Microsoft Corporation\NuGet Package Manager for Visual Studio 2017\15.99.99中获取所需的dll,但是我确信这不是解决此问题的预期方法。我也知道我可以修改Visual Studio绑定重定向,但我不想这样做。我有什么办法可以解决此问题,而不必诉诸于Visual Studio程序包管理器扩展中的dll或修改devenv.exe绑定重定向?

1 个答案:

答案 0 :(得分:1)

NuGet团队当前的版本控制方案是Visual Studio的11个主要版本。因此,NuGet v5.0.0的目标是Visual Studio v16.0.0,它将是Visual Studio 2019,但尚未发布。 Visual Studio 2017扩展需要以VS15.x为目标,因此也需要NuGet v4.x dll。

因此,您需要查看依赖关系并弄清楚NuGet.PackageManagement.VisualStudio 5.0.0中的内容,并确保它获取的版本为4.x.x。