Ich bin auf Wix 3.7. Ich habe ein MSI, das ich einen Registrierungsschlüssel einrichten möchte (vielleicht über eine benutzerdefinierte Aktion, da er prüfen muss, ob der Schlüssel bereits vorhanden ist).Übergabe von Befehlszeilenargumente an MSI von WiX-Bundle
Ich verstehe, dass ein Bundle in einem Bootstrapper-Projekt den Maschinenzustand nicht ändern kann (z. B. das Einrichten der Registrierung). Daher versuche ich, ein Befehlszeilenargument über <MsiProperty>
zu übergeben, scheint aber nicht als Befehlszeilenargument in meiner Protokolldatei für den Bootstrapper angezeigt.
- Ist es möglich, einen Registrierungsschlüssel in einem Bundle einzurichten?
- Wenn nicht, wie kann ich ein Befehlszeilenargument (oder ein anderes Stück benutzerdefinierter Daten) hinzufügen, das an die MSI übergeben werden soll.
- Wie kann das MSI lesen, was auch immer ich es übergeben (ob es sich um eine Befehlszeile arg oder etwas sonst).
Bundle:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle
Name="MyInstallerBootstrapperLocalDb"
Version="1.0.0.0"
Manufacturer="some company"
UpgradeCode="PUT-GUID-HERE">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<MsiPackage Id="MyInstallerInstaller"
SourceFile="$(var.MyInstallerInstaller.TargetPath)"
Compressed="no">
<!-- TODO - if this is being set correctly, the MSI needs to
interpret it and set up the key-->
<MsiProperty Name="SetLocalDb" Value="yes"/>
</MsiPackage>
</Chain>
</Bundle>
</Wix>
Eine Eigenschaft in der MSI-Befehlszeile muss eine PUBLIC-Eigenschaft sein. Und eine öffentliche Eigenschaft ist eine, die alles in den Hauptstädten ist. Also muss es SETLOCALDB sein, nicht SetLocalDb. Und muss im MSI auch als alle Hauptstädte deklariert werden. – RobG