2011-11-13 2 views
4

J'ai un problème lorsque mon projet InstallShield est construit et que je teste l'installation sur une machine Windows 7 64 bits propre, il crée une clé Wow6432Node dans une clé Wow6432Node lorsque je vérifie regedit à HKEY_LOCAL_MACHINE \ SOFTWARE. Tout enregistre correctement et le programme semble fonctionner correctement. Je me suis assuré que mon projet est celui qui cause cela. Je ne veux pas le laisser tel quel puisqu'il serait stupide d'avoir le registre comme ça. Est-ce que quelqu'un sait ce qui pourrait avoir causé cela? Si vous avez besoin de plus d'informations, s'il vous plaît faites le moi savoir.Clé Wow6432Node imbriquée dans InstallShield

+1

Quel système d'exploitation? Vista a eu ce problème de House of Mirrors. Fixé dans Windows 7. –

+0

C'est Windows 7. Je vais ajouter ceci à ma question. – Aura

Répondre

2

J'ai vu cette question à mon travail. Si vous ouvrez votre projet de bouclier d'installation et que vous observez les composants, certains auront la propriété COM Extract at Build définie sur yes. Développez ce composant et examinez les fichiers. Faites un clic droit sur eux pour voir les propriétés. Si les fichiers ont Auto-inscription cochée, cela provoquera le problème que vous voyez. Lorsque nous avons supprimé l'extrait COM à la compilation de tous nos composants dont les fichiers étaient auto-enregistrés, le problème a disparu. Lorsque vous installez votre produit sur un ordinateur 64 bits, il imbrique la clé wow6432node dans le registre. Sur une machine 32 bits, il ajoutera simplement une clé wow6432node au registre qui ne devrait jamais exister sur une machine 32 bits. Donc, pour clarifier le problème provient des composants spécifiques dont la propriété Com Extract at Build est définie sur yes, ET l'un des fichiers contenus dans ce composant est défini sur self register. Cela crée un wow6432node en erreur. Pour répondre à votre question de savoir pourquoi vous voyez les clés wow6432node imbriquées est un peu plus complexe.

Ce que je pense se passe dans votre cas, vous créez un redistribuable qui a le problème wow6432node. Lorsque votre installateur principal va créer les clés de registre nécessaires, il vérifie si la machine est en 64 bits. Si c'est le cas, il place tout sous la clé wow6432node. Jusqu'à présent, tout fonctionne, mais vient ensuite le redistribuable qui contient l'erreur. Il installe ensuite tout à sa propre clé Wow6432node qui est maintenant contenue dans le programme d'installation principal. Vous pouvez essayer cela en installant votre application sur une machine 32 bits. Vous devriez alors voir seulement 1 clé de wow6432node, plutôt que des clés imbriquées. Cette clé wow6432node est celle qui a été créée par erreur à partir du problème expliqué ci-dessus qui est contenu dans votre redistribuable.

(modifié pour clarification)

+0

C'est en fait mon problème. L'un des modules de fusion de mes redistribuables affichait la valeur de la propriété Com Extract at Build de tous ses composants auto-enregistrés. Quand j'ai mis cela à non, le problème a été résolu. Merci. – Aura

1

Pour un système 64 bits, vous pouvez créer une installation 64 bits et définir Oui pour la propriété 64 bits de vos composants.

Ou:

Disable(WOW64FSREDIRECTION); 

//... call register function 

Enable(WOW64FSREDIRECTION); 
Questions connexes