【发布时间】:2015-08-03 19:40:30
【问题描述】:
我在 VS 2012 发布时编写了这个扩展。当时我在 VS 2012 上编译了扩展,并且只针对 VS 2012。
然后,当 VS 2013 出来时,我重新编译了扩展,因此它也可以安装在 VS 2013 上。扩展代码本身可以在 VS 2012/2013/2015 上运行而无需更改。所以,为了允许在 VS 2013 上安装,我只更新了.vsixmanifest,将所需的 VS 版本从:
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="11.0" />
到
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[11.0,12.0]" />
而且它似乎工作正常。
但是,当我后来摆脱了 VS 2012 安装并想在 VS 2013 上编译扩展时,我遇到了以下参考的问题:
<Reference Include="Microsoft.VisualStudio.CoreUtility, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.VisualStudio.Editor, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.VisualStudio.Text.Data, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.VisualStudio.Text.UI, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
找不到这些程序集的版本 11。我将项目文件编辑为:
<Reference Include="Microsoft.VisualStudio.CoreUtility" />
<Reference Include="Microsoft.VisualStudio.Editor" />
<Reference Include="Microsoft.VisualStudio.Text.Data" />
<Reference Include="Microsoft.VisualStudio.Text.UI" />
<Reference Include="Microsoft.VisualStudio.Text.UI.Wpf" />
然后它在 VS 2013 上编译并运行良好,但显然扩展需要这些程序集的更高版本,仅在 VS 2013 上可用。因此,扩展不能再安装在 VS 2012 上。我现在有一个VS 2015 的类似问题。
我想我会安装 VS 2012 SDK,这将为我提供这些程序集的第 11 版,以便针对它们进行编译,但是如果不先安装 VS 2012,则无法安装此 SDK。
有什么方法可以从 VS 2015 编译此扩展,同时允许将扩展安装在 VS 上一直回到 2012 版本?
【问题讨论】:
标签: .net visual-studio-2012 visual-studio-2015 visual-studio-extensions visual-studio-sdk