2015-10-05 2 views
1

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".

Répondre