Bundle.wxl:Comment puis-je modifier les fonctionnalités MSI dans un programme d'amorçage de gravure WiX?
<Bundle Name="$(var.SetupName)"
Version="$(var.ProductVersion)"
Manufacturer="$(var.CompanyName)"
UpgradeCode="$(var.UpgradeCode)">
<Variable bal:Overridable="yes" Name="AddLocal"/>
<Variable bal:Overridable="yes" Name="Remove"/>
<Chain>
<MsiPackage Id ="Hello.msi" Name="MyApp.msi" SourceFile="$(var.MyApp.TargetPath)" EnableFeatureSelection="yes" >
<MsiProperty Name="ADDLOCAL" Value="[AddLocal]"/>
<MsiProperty Name="REMOVE" Value="[Remove]"/>
</MsiPackage>
</Chain>
</Bundle>
variable chaîne AddLocal
par définit l'interface utilisateur de cases à cocher et envoie Bootstrapper valeur à la Bundle.wxl comme ceci:
BootstrapperApplication.Engine.StringVariables["AddLocal"] = "FIRST,SECOND";
La même situation avec la variable Remove
: BootstrapperApplication.Engine.StringVariables["Remove"] = "THIRD";
Une fois les variables définies, je lance BootstrapperApplication.Engine.Plan(LaunchAction.Modify);
mais rien ne change avec mes fonctionnalités.
fichier journal contient des chaînes comme ceci:
fonction prévu: FIRST, Etat: Absent, défaut demandé: Inconnu, ba demandé: Inconnu, exécuter l'action: Aucun, rollback l'action: Aucun
prévu caractéristique: SECONDE, état: Absent, par défaut demandé: inconnu, ba demandé: inconnu, exécuter l'action: Aucun, action de retour: aucun
Fonctionnalité prévue: TROISIÈME, état: absent, valeur par défaut demandée: inconnu, ba demandé: inconnu, exécuter l'action: Aucune, l'action de restauration: Aucune
Toutefois, Product.wxs contient des entités avec id = "FIRST", id = "SECOND", id = "THIRD".