使用WIX将VSIX安装到Visual Studio 11.0和12.0

3
我尝试手动将VSIX安装到两个版本的Visual Studio中,这是可能的:
但是当我尝试使用由Wix 3.6生成的MSI安装程序来安装软件包时,只会将Vsix安装到VS2012中。
<Component Id="VSPackageComponent" Guid="E54DBAAF-4961-492C-AA8A-FFE3C4C77BA3">
      <VSExtension:VsixPackage File="VsPackageInstaller"
                               PackageId="8cc311e8-5f48-4816-b1ee-6c873fe0dc71"
                               Vital="yes" Permanent="no" />
      <File Id="VsPackageInstaller" Name="VSProject2012.vsix"
                                    Source="VSProject2012.vsix"/>
</Component>

这个软件包在msi卸载期间没有被卸载(之前有一段时间是可以的)。GUID是相同的(清单中的PackageId和Identity Id)。

我应该使用这些建议吗? 还是应该使用WIX 3.7?

2个回答

2

我认为你应该将TargetVersion属性设置为VSExtension:VsixPackage标记。我为安装Visual Studio 2012的vsix设置了TargetVersion="11.0"。对于两个版本的Visual Studio,您需要两个VSExtension:VsixPackage元素。我使用一个vsix来适用于两个版本的Visual Studio专业版和Visual Studio Windows Express(vswinExpress)。以下是我的代码:

<Component Id="AlvenosVsix" Directory="VSIXES">
  <VSExtension:VsixPackage File="AlvenosVsixFile" PackageId="AlvenosProjectTemplate..330e64ab-f5eb-4211-8fbc-d88485dc13e2" Target="professional" TargetVersion="11.0" Vital="yes" Permanent="no"/>
  <VSExtension:VsixPackage File="AlvenosVsixFile" PackageId="AlvenosProjectTemplate..330e64ab-f5eb-4211-8fbc-d88485dc13e2" Target="vswinExpress" TargetVersion="11.0" Vital="no" Permanent="no"/>
  <File Id="AlvenosVsixFile" Source="ClientAndServerBuilder/Vsixes/Alvenos.vsix" />
</Component>

1
我建议您升级到Wix 3.8(去年11月发布),因为它支持VS2013。在安装3.8后,为Wix 3.6创建的wixproj无需进行任何更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接