2013-02-07 17 views

答えて

31

まず、設定したいバーン変数を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> 
+2

これは[WixStdBA](https://github.com/wixtoolset/wix3/blob/4786b1306b614b83cb96ad1b07f7597992f37126/src/ext/BalExtension/wixstdba/WixStandardBootstrapperApplication.cpp)に当てはまりますが、マネージドブートストラップアプリケーションには当てはまりません。したがって、cmdlineからの変数の解析とオーバーライドのロジックがバーンコアにないことは奇妙です。 – stukselbax

関連する問題