C# 如何在Visual Studio 2019中创建与Visual Studio 2015兼容的扩展?

C# 如何在Visual Studio 2019中创建与Visual Studio 2015兼容的扩展?,c#,visual-studio,visual-studio-2015,visual-studio-2019,visual-studio-extensions,C#,Visual Studio,Visual Studio 2015,Visual Studio 2019,Visual Studio Extensions,如何正确地为Visual Studio创建向后兼容到Visual Studio 2015的扩展?如果使用标准Visual Studio 2019模板进行扩展,则它会在依赖项(例如Microsoft.VisualStudio.Shell.15.0)中使用DLL,而这些依赖项不在Visual Studio 2015中。也许需要安装一个特定的软件包列表,而不是标准的SDK?我找到了一种方法 在Visual Studio 2019中创建扩展项目 删除NuGet软件包Microsoft.VisualSt

如何正确地为Visual Studio创建向后兼容到Visual Studio 2015的扩展?如果使用标准Visual Studio 2019模板进行扩展,则它会在依赖项(例如Microsoft.VisualStudio.Shell.15.0)中使用DLL,而这些依赖项不在Visual Studio 2015中。也许需要安装一个特定的软件包列表,而不是标准的SDK?

我找到了一种方法

  • 在Visual Studio 2019中创建扩展项目
  • 删除NuGet软件包Microsoft.VisualStudio.SDK和Microsoft.VSSDK.BuildTools
  • 按说明添加Madskristensen.VisualStudio.SDK包。但是您需要将包的版本从14.0.123-pre更改为14.0.81-pre
  • 将代码中使用的Microsoft.VisualStudio.Shell.15.0版本更改为Microsoft.VisualStudio.Shell.14.0。例如,在窗口的控件中:
xmlns:vsshell=“clr命名空间:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.14.0”

不要忘记在扩展清单中设置适当的Visual Studio版本


之后,在2015年和2019年都会毫无疑问地安装该扩展。

@jdweng但如果我将版本从4.7.2更改为4.5,那么这些包将不再兼容。并且Microsoft.VisualStudio.SDK包包含对Microsoft.VisualStudio.Shell.15.0的依赖项,但该扩展无法在Visual Studio 2015中找到该版本的DLL。实际上,-VS2015是内部版本“14”,因此您需要查找Shell.14.0。一般来说,是的,您必须将NuGet软件包降级到较旧的版本,并且不获取任何版本为15.0或更高的NuGet软件包。展望未来,我们有元软件包来简化这一过程,但我们只是没有用于VS2015的元软件包。