Подтвердить что ты не робот

WiX Bootstrapper: Как установить переменные ожога из командной строки?

Использование WiX 3.7 и .NET 4.0.

Как установить переменные сжигания при запуске загрузочного буфера WINX EXE из командной строки?

4b9b3361

Ответ 1

Прежде всего, переменные сжигания, которые вы хотите установить, должны быть установлены как Overridable. Чтобы сделать это, вы должны включить следующее пространство имен в свой WXS: xmlns:bal="http://schemas.microsoft.com/wix/BalExtension", и если вы используете Visual Studio, например, меня, вы должны включить WixBalExtension.dll в свои ссылки на проект. Затем вам нужно добавить следующий атрибут ко всем переменным ожога, которые вы хотите установить через командную строку: bal:Overridable="yes".

Теперь вы можете установить переменные через командную строку следующим образом:

BootstrapperSetup.exe /i /passive MyBurnVariable1=1 MyBurnVariable2=2


Ниже приведен пример файла WXS, который удовлетворяет всем описанным выше условиям:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
         xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">

  <Bundle Name="MyProduct" Version="1.0.0" Manufacturer="MyManufacturer" UpgradeCode="PUT-UPGRADE-CODE-HERE">

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
      <bal:WixStandardBootstrapperApplication LicenseUrl="MyLicense.htm" ThemeFile="MyThemeFile.xml" LocalizationFile="MyLocFile.wxl" />
    </BootstrapperApplicationRef>

    <Variable Name="MyBurnVariable1" bal:Overridable="yes" Type="numeric" Value="0" />
    <Variable Name="MyBurnVariable2" bal:Overridable="yes" Type="numeric" Value="0" />

    <Chain>
      <MsiPackage Id="MyFirstMsiPackage"
                  SourceFile="first.msi"
                  InstallCondition="MyBurnVariable1 = 1" />

      <MsiPackage Id="MySecondMsiPackage"
                  SourceFile="second.msi">
        <MsiProperty Name="MY_PROPERTY" Value="[MyBurnVariable2]" />
      </MsiPackage>
    </Chain>
  </Bundle>
</Wix>