さまざまなクライアント用に製品を事前構成する書き込みバンドルを作成したいと考えています。インストールをできるだけ簡単にするために、同じパッケージをインストールするクライアントごとに異なるバンドルを作成しますが、レジストリ値のセットは異なります。
MsiPackage
これで、経由で入力を受け入れるが得られましたMsiProperty
。このプロパティを、コマンド ラインで light を使用して渡す値に設定するデフォルトの書き込みブートストラップがあります-dproperty_a=value_a
。
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Product Name"
Version="!(bind.packageVersion.main)"
Manufacturer="!(bind.packageManufacturer.main)"
UpgradeCode="{MYGUID}">
<WixVariable Id="property_a" Overridable="yes" Value=""/>
<BootstrapperApplicationRef
Id="WixStandardBootstrapperApplication.HyperlinkLicense">
<bal:WixStandardBootstrapperApplication
LicenseUrl="" LogoFile="bitmaps/logo.png"
ThemeFile="burnTheme.xml"/>
</BootstrapperApplicationRef>
<Chain>
<MsiPackage SourceFile="package.msi" Id="main">
<MsiProperty Name="property_a" Value="!(wix.property_a)"/>
</MsiPackage>
</Chain>
</Bundle>
</Wix>
すべてが期待どおりに機能します。しかし、2 つの異なるバージョンをインストールしても、一方が他方を置き換えません。同じ製品を 2 回インストールします。
UpgradeCode
同じものを使用することでこれを防ぐことができると思いました。UpgradeCode
同じバンドルが 2 つインストールされている可能性があるのはなぜですか?
別のバージョンをインストールすると、インストール前に別のバージョンがアンインストールされることを確認できますか? AllowSameVersionUpgrades
バーンバンドルのようなものはありますか?