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?

4

2 回答 2

2

我认为您应该将 TargetVersion 属性设置为 VSExtension:VsixPackage 标记。我设置 TargetVersion="11.0" 用于安装 VisualStudion 2012 的 vsix。对于两个版本的 VisualStudio,您需要两个 VSExtension:VsixPackage 元素。我将一个 vsix 用于两个 VisualStudio Professional 和 VisualStudio 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>
于 2014-07-09T13:30:18.163 回答
1

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

于 2014-01-30T17:08:56.123 回答