【问题标题】:How do I make Visual Studio 2012 deploy the VSIX to Visual Studio 2010 experimental instance?如何让 Visual Studio 2012 将 VSIX 部署到 Visual Studio 2010 实验实例?
【发布时间】:2014-02-28 11:04:23
【问题描述】:

我有一个用 Visual Studio 2012 打开的 Visual Studio 插件。如果我单击 F5,插件将部署到 Visual Studio 2012 实验实例,一切正常。我想看看插件在 Visual Studio 2010 中是如何工作的,如果我可以用在那里注册的插件启动一个 VS2010 实验实例,那就太好了。

我更改了清单以使其显示

<Installation InstalledByMsi="false">
    <InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[10.0,12.0]" />
    <InstallationTarget Id="Microsoft.VisualStudio.Premium" Version="[10.0,12.0]" />
    <InstallationTarget Id="Microsoft.VisualStudio.Ultimate" Version="[10.0,12.0]" />
</Installation>

在项目设置的“调试”选项卡上,我将路径更改为指向 VS2010 devenv.exe

当我单击 F5 时,Visual Studio 2010 实验实例运行得很好,但我的插件没有初始化 - 显然它没有部署在那里。

如何在这种情况下部署它?

【问题讨论】:

  • 我没有解决你原来的问题,但看起来你使用的是 vsixmanifest v2.0 格式,VS 2010 不支持。
  • @SergeyVlasov:也许这就是答案。我可以在 Studio 2012 及更高版本中使用 v1 格式吗?
  • 是的,您可以在 VS 2012+ 中使用 v1 格式。只需从 VS 2010 扩展中复制 xml 代码即可。 (但一般来说,如果要支持VS 2010,最好还是在VS 2010中开发。或者至少在VS 2010中创建初始扩展项目。)
  • @SergeyVlasov:有趣的是,我尝试将清单转换为 v1,但它没有任何区别 - Visual Studio 2010 实验在没有部署插件的情况下启动。

标签: visual-studio visual-studio-2012 visual-studio-extensions


【解决方案1】:

当您构建一个扩展时,它只部署到一个实验性配置单元中,用于单一版本的 Visual Studio。通常,它应该针对您正在构建的相同版本,因此如果您想在 Visual Studio 2010 中尝试它,您应该使用 Visual Studio 2010 构建您的扩展。如果这不起作用,您可以尝试命令行构建你的项目有类似的东西

msbuild /p:DeployExtension=true /p:VSSDKTargetPlatformVersion=10.0

“目标平台版本”指定您要定位的版本。这通常默认为 SDK 版本。

【讨论】:

  • 现在对我来说似乎很有效的方法是在其他版本的 Visual Studio 上进行测试时只进行一次性命令行构建。例如,我有一个使用 VS 2012 开发的扩展程序,它在 2012、2013 和 2015 年都支持。如果我需要在 2013 年测试某个功能,我将项目的运行属性更改为指向 12.0 目录下的 devenv.exe,然后每次构建时,我也只是从 VS 2013 命令提示符运行“msbuild MyExtension.sln”。
猜你喜欢
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多