I'm trying to install VSIX to two versions of Visual Studio and it is possible when doing it manually:

enter image description here

But when I'm trying to install the package using MSI installer generated by Wix 3.6 the vsix is installed to VS2012 only.

<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>

And this package is not uninstalled during msi uninstall (it worked for some time before). GUIDs are identical (PackageId and Identity Id in manifest).

Should I use these recommendations? Or should I use WIX 3.7?

有帮助吗?

解决方案

I think that you should set the TargetVersion attribute to the VSExtension:VsixPackage tag. I set TargetVersion="11.0" for installing the vsix for VisualStudion 2012. For two versions of VisualStudio you need two VSExtension:VsixPackage elements. I use one vsix for two VisualStudio professional and VisualStudio Windows Express (vswinExpress). Here is my code:

<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>

其他提示

I recommend you upgrade to Wix 3.8 (released last November) because it has support for VS2013. Wixproj created for Wix 3.6 do not need any changes after installing 3.8.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top