12
WiX 3.7と.NET 4.0を使用しています。
コマンドラインからWiXブートストラップEXEを実行しているときに、どのように変数を書き込みますか?WiXブートストラップ:コマンドラインからバーン変数を設定するにはどうすればよいですか?
WiX 3.7と.NET 4.0を使用しています。
コマンドラインからWiXブートストラップEXEを実行しているときに、どのように変数を書き込みますか?WiXブートストラップ:コマンドラインからバーン変数を設定するにはどうすればよいですか?
まず、設定したいバーン変数を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
はそのsatifies、上記の条件のすべてを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>
これは[WixStdBA](https://github.com/wixtoolset/wix3/blob/4786b1306b614b83cb96ad1b07f7597992f37126/src/ext/BalExtension/wixstdba/WixStandardBootstrapperApplication.cpp)に当てはまりますが、マネージドブートストラップアプリケーションには当てはまりません。したがって、cmdlineからの変数の解析とオーバーライドのロジックがバーンコアにないことは奇妙です。 – stukselbax