13

Burn をインストーラーのブートストラップとして使用することを検討していますが、いくつかの引数を MSI に渡す必要があります。

これを行う方法は要素を使用することであることを知っていMsiPropertyます。私が抱えている問題は、UI を表示してそれらのプロパティをキャプチャすることです。マネージ ブートストラップ アプリケーション ホストを介して完全にカスタムの UI を作成できることは承知していますが、ブートストラップの比較的小さな微調整を実装するには、多くの作業が必要になることが判明しています。

基本的な UI のカスタマイズを行う方法について説明しているこのブログ記事を見つけ、Burn UI を変更して単純なチェックボックス/テキストボックスを含めることができるかどうか疑問に思いました (その値は、Burn 変数を設定するために使用され、それを自分のMSI) 同様の方法で、または管理されたブートストラップ アプリケーション ホストを使用する必要がありますか?

4

1 に答える 1

34

これに関するドキュメントはどこにも見つかりませんが、少し実験してソースコードを読むと、これはかなり簡単であることがわかります-Nameコントロール(チェックボックスなど)のをBurn変数(WiX変数ではない)の名前に設定するだけです- それらは異なります)、そのように (これを配置する場所の詳細については、Burn UIのカスタマイズを参照してください)

<Checkbox Name="MyCheckBox" ...>Hello, checkbox</Checkbox>

必要に応じて、バンドルの下に書き込み変数を定義して、値に初期化することができます (チェックボックスを使用して、「チェック済み」の場合は 1、「チェックなし」の場合は 0 を使用します)。

<Variable Name="MyCheckBox" Value="1" />

ただし、必須ではありません。とにかく、変数は自動的に作成されます。Variableaではなく aである必要があることに注意してくださいWixVariable。これらは異なります。

最後に、この変数に基づいて MSI プロパティを設定するには、要素の子として要素を追加しますMsiPropertyMsiPackage

<MsiPackage Name="MyMsi.msi" ...>
    <MsiProperty Name="SOMEPROPERTY" Value="[MyCheckBox]" />
</MsiPackage>

チェックボックスのチェック状態に基づいて、MSI プロパティ「SOMEPROPERTY」の値が 0 または 1 に設定されます。

于 2012-09-07T19:23:29.090 に答える