Как сказать WiX, какую версию VsixInstaller использовать?


Я хочу установить свой VSIX с msi, используя WiX.

У меня есть код folowing в моем файле wxs

<Component Id ="cmp_WiXGenPackage">
    <File Id="fil_WiXGenPackage" Source="$(var.WiXGenerator.VSIX.TargetDir)VSExtension1.vsix" KeyPath="yes" Vital="yes">
      <VSExtension:VsixPackage PackageId="WiXGenerator.VSExtension.52858d9a-5c32-4661-926d-66271a65cbba" Vital="yes" Permanent="no" />
    </File>
</Component>

Когда я строю проект, я получаю хороший msi, как и ожидалось, но когда я пытаюсь выполнить его, он падает. ниже приведена самая интересная часть журнала и показано, что, по моему мнению, создает ошибку:

MSI (s) (94:7C) [18:15:45:956]: Executing op: CustomActionSchedule(Action=vim6D68CD66793FF0B87E58724E51ABAE73,ActionType=3122,Source=C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEVSIXInstaller.exe,Target=/q  "C:Program Files (x86)[ProductManufacturer]WiX GeneratorVSExtensionVSExtension1.vsix" /admin,)
CustomAction vim6D68CD66793FF0B87E58724E51ABAE73 returned actual error code 1001 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (94:7C) [18:15:46:862]: Note: 1: 1722 2: vim6D68CD66793FF0B87E58724E51ABAE73 3: C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEVSIXInstaller.exe 4: /q  "C:Program Files (x86)[ProductManufacturer]WiX GeneratorVSExtensionVSExtension1.vsix" /admin 
MSI (s) (94:7C) [18:15:46:862]: Note: 1: 2205 2:  3: Error 
MSI (s) (94:7C) [18:15:46:862]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1722 
Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.  Action vim6D68CD66793FF0B87E58724E51ABAE73, location: C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEVSIXInstaller.exe, command: /q  "C:Program Files (x86)[ProductManufacturer]WiX GeneratorVSExtensionVSExtension1.vsix" /admin 
MSI (s) (94:7C) [18:15:48:125]: Note: 1: 2205 2:  3: Error 

Проблема в том, что он использует VS11 VSIXInstaller и im, создающий VS12 VSIX. Когда я запускаю vsix с vs12 версией VSIXInstaller, он будет устанавливаться без проблемы.

Реальный вопрос: Есть ли способ, чтобы проинструктировать Wix, чтобы использовать версию vs12?

Я знаю, что элемент VSIXPackage имеет атрибуты для идентификации версии, но это может использоваться только для версий ниже, чем VSIXInstaller

Im с помощью набора инструментов WiX версии 3.8

С. П. Я знаю, что некоторые из вас против использования MSI для установки VSIX, но никто из вышеперечисленных не просит об этом отзыве, поэтому, пожалуйста, не предоставляйте таких комментариев

1 3

1 ответ:

VsixPackage имеет два атрибута, которые позволяют установить версию Visual Studio, которую вы хотите установить расширение, и тип visual Studio. Например, если вы задаете атрибуты следующим образом: Target="integratedShell" TargetVersion="12.0", вы сообщаете установщику, что выполняете расширение для установки в Visual Studio 2013 типа IntegrateShell. Дополнительную информацию о значениях, которые можно задать в этих атрибутах, вы можете найти на этой странице VsixPackage информация