Использование WiX 3.7 и .NET 4.0.
Как установить переменные сжигания при запуске загрузочного буфера WINX EXE из командной строки?
WiX Bootstrapper: Как установить переменные ожога из командной строки?
Ответ 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>