Visual studio 2017 使用nuget.client DLL解决冲突依赖项

Visual studio 2017 使用nuget.client DLL解决冲突依赖项,visual-studio-2017,nuget,vsix,Visual Studio 2017,Nuget,Vsix,如何解决VisualStudio扩展和内置nuget包管理器之间的冲突依赖关系?我收到一个错误,Nuget.PackageManagement.VisualStudio,版本=5.0.0.0正在尝试解析Microsoft.VisualStudio.ProjectSystem,版本=16.0.0,但找不到它。对于列出的版本,我没有引用这些包中的任何一个。我引用的是Nuget.PackageManagement.VisualStudio,Version=4.8.0.6,而不是Microsoft.Vi

如何解决VisualStudio扩展和内置nuget包管理器之间的冲突依赖关系?我收到一个错误,
Nuget.PackageManagement.VisualStudio,版本=5.0.0.0
正在尝试解析
Microsoft.VisualStudio.ProjectSystem,版本=16.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\\AppData\Local\Microsoft\VisualStudio\15.0\U c9b36733Exp\Extensions\Microsoft Corporation\NuGet Package Manager for Visual Studio 2017\15.99.99
中获取所需的DLL,但我确信这不是解决此问题的理想方法。我也知道我可以修改VisualStudio绑定重定向,但我不希望这样做。我是否有办法解决这个问题,而不必从visual studio package Manager扩展获取DLL或修改devenv.exe绑定重定向?

NuGet团队当前的版本控制方案比VisualStudio落后11个主要版本。因此,NuGet v5.0.0的目标是Visual Studio v16.0.0,这将是Visual Studio 2019,它尚未推出。Visual Studio 2017扩展需要以VS15.x为目标,因此需要NuGet v4.x DLL


因此,您需要查看您的依赖项,找出NuGet.PackageManager.VisualStudio 5.0.0中的原因,并确保它改版为4.x.x版本。

您不是唯一一个。。。请参阅我在此处的第一条评论:@SimonMourier感谢您链接您的问题,这与我遇到的问题非常相似。@SimonMourier我在我的vsix中切换到PackageReference,但没有更改。我的DLL将同时使用PackageReference和package.config。只是我没有使用与Visual Studio相同版本的依赖项。您必须1)仔细记下某个地方的所有内容以确保不会忘记某些内容,2)手动删除所有引用,3)完全删除package.config(不再编译任何内容),然后4)切换到packagereference,5)重新创建所需的引用(其中将是包引用)。您应该拥有比以前少得多的可见包引用。Visual Studio版本16是(即将是)Visual Studio 2019,而Visual Studio 2017是版本15。所以,我不希望一个扩展需要一个VS16 dll才能在VS15中工作。当我下载最新的
NuGet.PackageManagement.VisualStudio
nupkg,解压缩它,在ildasm中打开dll并查看清单时,它需要Microsoft.VisualStudio.ProjectSystem的版本15,而不是版本16。因此,可能存在程序集重定向问题。您需要查看依赖关系的可传递图,以查看包/dll的版本16中有哪些内容。或者给我们足够的时间去责备