2013-09-19 4 views
3

Я пытаюсь установить VSIX в двух версиях Visual Studio, и возможно, когда делать это вручную:Установка VSIX в Visual Studio 11.0 и 12.0 с помощью WIX

Но когда я пытаюсь для установки пакета с помощью установщика MSI, созданного Wix 3.6, 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 в манифесте).

Должен ли я использовать эти recommendations? Или использовать WIX 3.7?

ответ

2

Я думаю, что вы должны установить атрибут TargetVersion тега VSExtension: VsixPackage. Я установил TargetVersion = "11.0" для установки vsix для VisualStudion 2012. Для двух версий VisualStudio вам нужны два элемента VSExtension: VsixPackage. Я использую один vsix для двух профессионалов VisualStudio и 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> 
1

Я рекомендую вам перейти на версию Wix 3.8 (выпущенную в ноябре прошлого года), поскольку она поддерживает VS2013. Wixproj, созданный для Wix 3.6, не нуждается в каких-либо изменениях после установки 3.8.