为 VS 2015 和 VS 2017 做兼容的 VSIX 项目

Doing compatible VSIX Project for VS 2015 and VS 2017

我有一个针对 VS 2015 实施的 VSIX 项目。我按照此 link 将 vsix 项目迁移到 VS 2017:

https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-migrate-extensibility-projects-to-visual-studio-2017?view=vs-2017

我将 VSIX csproj 文件中的 xml 标记 MinimumVisualStudioVersion 的值从 14.0 更改为 15.0。但是现在我无法在VS 2015中打开项目。

我可以迁移项目。问题是迁移后我无法在 VS 2015 中打开 VSIX 项目。我想配置 VSIX 项目,使其与 VS 2015 和 VS 2017 保持兼容。

在我的开发团队中,我们正在使用两个 VS 版本。这就是为什么我需要为 2015 年和 2017 年配置项目。我想要一个 csproj 文件用于两个 VS 版本,而不是两个 csproj 文件。知道我该怎么做吗?

在这个问题中你确实有两个问题:如何在 vs 2015 和 vs 2017 中打开 .csproj 以及如何为它们构建 vsix?

要允许在两个 Visual studio 版本中打开,您可以在 .csproj 中添加如下内容:

  <PropertyGroup Condition=" '$(VisualStudioVersion)' == '14.0' Or '$(VisualStudioVersion)' == '15.0' ">
    <MinimumVisualStudioVersion>$(VisualStudioVersion)</MinimumVisualStudioVersion>
  </PropertyGroup>

要允许为它们构建 vsix,您需要使用 .vsixmanifest 的 v3,设置正确的目标和预请求,并使用具有构建 vsix 所需工具和任务的相关 nuget 包。您可以在 article from Carlos Quintero and in the FAQ for vs 2017

中找到更多详细信息