Visual studio 如何使简单的VS扩展在VS 2019、VS 2017和VS 2015中正确安装和工作?

Visual studio 如何使简单的VS扩展在VS 2019、VS 2017和VS 2015中正确安装和工作?,visual-studio,visual-studio-extensions,Visual Studio,Visual Studio Extensions,我使用VS2019开发了一个简单的扩展。当我调试它(即exp-hive)时,它对VS2019和VS2017都有效。我不知道如何将VS 2015添加到启动菜单,即: 因此,我在发行版中构建了扩展(我将其更改为不将其部署到发行版中的exp配置单元),并运行: 得到这个: 我试着使用依赖项和先决条件,我能得到的最好结果是一个干净的安装对话框,建议它可以安装到所有三个版本的VS上,但实际上扩展被破坏了——缺少引用时出现了一个错误。无论如何,它现在是失败的,那时也是失败的 扩展非常简单: RunAdj

我使用VS2019开发了一个简单的扩展。当我调试它(即exp-hive)时,它对VS2019和VS2017都有效。我不知道如何将VS 2015添加到启动菜单,即:

因此,我在发行版中构建了扩展(我将其更改为不将其部署到发行版中的exp配置单元),并运行:

得到这个:

我试着使用依赖项和先决条件,我能得到的最好结果是一个干净的安装对话框,建议它可以安装到所有三个版本的VS上,但实际上扩展被破坏了——缺少引用时出现了一个错误。无论如何,它现在是失败的,那时也是失败的

扩展非常简单:

RunAdjustLocalApplicationHostConfigScriptVSExt.csproj


16
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
假的

如何避免呢

附言


此问题与

有关。要使扩展在VS 2015-2019中可安装,您需要调整source.extension.vsixmanifest:

  • 删除依赖项d:Source=“Installed”Id=“Microsoft.VisualStudio.MPF.16.0”DisplayName=“Visual Studio MPF 16.0”Version=“[16.0,17.0)”

  • 将CoreEditor版本=“[16.1.28811.260,17.0)”更改为版本=“[15.0,)”


  • 要在VS 2015-2019中运行,您需要确保只引用VS 2015程序集(它们的名称中通常有14.0)。

    最后,对我有效的是:

  • 在VS 2015上创建扩展。一点也不优化,但我已经安装了它
  • 参考nuget包
  • 保存完之后,我在VS2017中打开了它,并迁移到包引用

  • csproj

    
    15
    $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
    真的
    14
    调试
    任意CPU
    2
    {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
    {E21DB471-B7B3-4A7D-A737-8260B01D5AC6}
    图书馆
    

    我非常想摆脱它。但我不知道如何摆脱。我想这将是另一个问题

    编辑1

    在这两个帖子的帮助下(按此顺序)最终锁定:


  • 我已经更新了上面的代码片段以反映更改。

    请参见编辑1。我想知道如何使其适用于VS 2015…@mark for VS 2015您需要的是Microsoft.VisualStudio.SDK v14,而不是15。那么,这是否意味着我必须使用VS 2015?Nuget中似乎没有v14。请参见编辑2@mark您的包类和清单看起来如何VS 2015中有什么?嗯。很有趣。我没有故意删除它。我想这就是它在VS2015中的工作方式。我应该添加什么而不破坏VS2015?VS 2015不知道先决条件并忽略它。只需复制你在VS 2017中使用的内容。这不起作用。它显示无效的vsix文件。如果我删除了先决条件,那么它就可以工作,使用上述方法内德抱怨。
    C:\RunAdjustLocalApplicationHostConfigScriptVSExt [master ↓1 ↑1]> git clean -qdfx
    C:\RunAdjustLocalApplicationHostConfigScriptVSExt [master ↓1 ↑1]> msbuild /restore /p:Configuration=Release /v:m
    Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
    Copyright (C) Microsoft Corporation. All rights reserved.
    
      Restoring packages for C:\RunAdjustLocalApplicationHostConfigScriptVSExt\src\RunAdjustLocalApplicationHostConfigScriptVSExt.csproj...
      Generating MSBuild file C:\RunAdjustLocalApplicationHostConfigScriptVSExt\src\obj\RunAdjustLocalApplicationHostConfigScriptVSExt.csproj.nuget.g.props.
      Generating MSBuild file C:\RunAdjustLocalApplicationHostConfigScriptVSExt\src\obj\RunAdjustLocalApplicationHostConfigScriptVSExt.csproj.nuget.g.targets.
      Restore completed in 817.27 ms for C:\RunAdjustLocalApplicationHostConfigScriptVSExt\src\RunAdjustLocalApplicationHostConfigScriptVSExt.csproj.
      RunAdjustLocalApplicationHostConfigScriptVSExt -> C:\RunAdjustLocalApplicationHostConfigScriptVSExt\src\bin\Release\RunAdjustLocalApplicationHostConfigScriptVSExt.dll
      RunAdjustLocalApplicationHostConfigScriptVSExt -> C:\RunAdjustLocalApplicationHostConfigScriptVSExt\src\bin\Release\RunAdjustLocalApplicationHostConfigScriptVSExt.vsix
    C:\RunAdjustLocalApplicationHostConfigScriptVSExt [master ↓1 ↑1]> .\src\bin\Release\RunAdjustLocalApplicationHostConfigScriptVSExt.vsix
    C:\RunAdjustLocalApplicationHostConfigScriptVSExt [master ↓1 ↑1]>
    
    The following extensions are not compatible with the selected version of Visual Studio. Installation may cause Visual Studio to be unstable.
    
    - RunAdjustLocalApplicationHostConfigScriptVSExt