2009-10-23 7 views
0

Dans mon application Configurer un projet, j'essaie de configurer une clé de registre soit sous HKLM/Logiciel ou HKCU/Logiciel selon que l'utilisateur a coché "Tous les utilisateurs" ou "Juste Moi "pendant l'installation.Utilisation du champ Condition dans un projet de configuration sur VS2008

Pour cet effet, j'ai essayé d'utiliser la propriété ALLUSERS et vérifiez contre 1 ou "", respectivement .:

  • ALLUSERS = 1
  • ALLUSERS = ""

J'ai les clés AlwaysCreate propriété définie sur False. Et pourtant, lors de l'installation de HKLM/Software/my_key et HKCU/Software/my_key sont créés.

Qu'est-ce qui me manque?

Mise à jour: J'ai essayé d'autres alternatives comme enfermant ALLUSERS entre crochets, ce qui permet la propriété transitive ou à l'aide ALLUSERS = 1 au lieu de = "". En vain. J'ai abandonné pour le moment et ne crée que sous HKLM dans les deux cas. Mais si quelqu'un a une réponse, j'apprécierais vraiment.

+0

S'il y a quelqu'un que je peux améliorer cette question, s'il vous plaît allumer. Je trouve étrange que je n'ai pas eu de réponse jusqu'à présent. Soit je suis tombé sur un cas rare d'une fonctionnalité largement utilisée que personne ne sait, ou plus probablement je ne demande pas ce droit. –

+0

-anyone + de toute façon –

Répondre

2

Ma compréhension de Windows Installer est que ce comportement est abstrait afin que le développeur n'ait pas à s'en soucier. Autrement dit, si la propriété ALLUSERS n'est pas définie, votre package d'installation va mettre "automagiquement" les clés de registre dans HKCU plutôt que dans HKLM. Voir la documentation sur MSDN au http://msdn.microsoft.com/en-us/library/aa367559%28VS.85%29.aspx. Par conséquent, il semble que vous essayez de réimplémenter cette fonctionnalité via le projet d'installation; Je suggère de laisser tomber la condition basée sur la propriété ALLUSERS. En remarque, la propriété AlwaysCreate contrôle dans quelles circonstances la clé de registre sera créée, en relation spécifique avec le contenu de la clé. En le définissant sur false, vous dites "ne créez pas cette clé si elle n'a pas de sous-clé ou de valeur". Le définir sur true signifie "créer cette clé, qu'elle ait ou non des sous-clés ou des valeurs". Documentation à nouveau disponible sur MSDN au http://msdn.microsoft.com/en-us/library/e1t11k72%28VS.100%29.aspx.

+1

Bien qu'il n'ait initialement pas résolu mon problème, vous m'avez laissé entrevoir ce qui pourrait être faux. Merci alastairs. Le problème était lié à cela. Je faisais quelque chose de mal. J'utilisais les ruches HKLM et HKCU et j'essayais de régler les clés de manière conditionnelle. Cependant, j'ai complètement raté le dernier élément de l'éditeur du registre du projet d'installation. Un "User/Machine Hive" remarquable. C'est là que j'aurais dû mettre mes clés, et pas directement sous HKLM ou HKCU. Que je suis bête. –