En utilisant si la condition de comparer des valeurs de variables dans WiX
Je veux vérifier si l'utilisateur a passé un argument pour le nom d'utilisateur pour lequel la valeur par défaut est locale. Je suis en train de voir si je je reçois un message si la valeur est local. Le problème est dans la manière suivante. Cela ne fonctionne pas.
<Property Id="USERNAME" Value="local"/>
<?define uName = [USERNAME]?>
<?if $(var.uName) = local ?>
<Condition Message="$(var.uName)">0</Condition>
<?endif?>
Mais, si je change le code pour la suite il donnera le message.
<?define uName = local?>
<?if $(var.uName) = local ?>
<Condition Message="$(var.uName)">0</Condition>
<?endif?>
Et le code suivant affecte la valeur de la propriété USERNAME de la uName
variable.
<Property Id="USERNAME" Value="local"/>
<?define uName = [USERNAME]?>
<Condition Message="$(var.uName)">0</Condition>
Le code ci-dessus impressions de "local" dans une boîte de message.
J'ai essayé de nombreux scénarios et de trouver où est le problème. Lorsque l'on compare les valeurs de la variable, qui est affecté comme,
<?define uName = [USERNAME]?>
Si la valeur est affectée à la commande uName, nous ne pouvons pas faire la comparaison. Suis-je en train de faire quelque chose de mal ici? Ou est-il un autre moyen pour ce genre de problème?
OriginalL'auteur Isuru Gunawardana | 2013-03-15
Vous devez vous connecter pour publier un commentaire.
Pourriez-vous le faire comme ça, sans les variables?
<Property Id="USERNAME" Value="local"/>
<Condition Message="The username is local, please enter a username for the installation to proceed">USERNAME = "local"</Condition>
Ce serait correct si l'utilisateur a entré un nom d'utilisateur, puis l'installation de procéder, mais si l'utilisateur n'a pas alors il ne pourrait pas la valeur par défaut est local.
Je me demande bien comment le nom d'utilisateur est entré. Est-ce via la ligne de commande ou à partir d'une boîte de dialogue de saisie?
Si à partir d'un dialogue - je vous suggérerais d'avoir un dialogue d'erreur plutôt que de l'abandon de l'installation. Je suis peut-être complètement faux, mais simplement vous donner des options.
Espère que cela aide...:)
EDIT:
À faire ce que vous voulez, il suffit d'ajouter une condition à votre composant qui a votre service intérieur. Ont deux composantes:
Ive mis à jour ma réponse avec un exemple
OriginalL'auteur Natalie Carr