Question

Notre produit contient un serveur COM in-proc VC ++ ATL avec deux classes exposées: ClassA et ClassB. Ce serveur COM est ajouté à un package d’installation d’Install Shield 2008 et à "COM Extract at Build". la propriété est définie pour le composant.

ClassA et ClassB sont exposés de manière exactement identique par le composant: un fichier .rgs est créé pour chacun d'eux. Les deux fichiers .rgs sont compilés dans les ressources du composant et CAtlModule :: UpdateRegistryFromResourceS () est invoqué pour les deux.

Cependant, lorsque nous exécutons regsvr32 sur le serveur COM, les deux classes sont correctement exposées au registre, mais lorsque nous exécutons l'installation du package, une seule d'entre elles est exposée par Install Shield.

Comment Install Shield détecte-t-il les modifications à apporter au registre? Que devrions-nous vérifier pour détecter la source du problème?

Était-ce utile?

La solution

Je soupçonne qu'ils utilisent RegOverridePredefKey (au moins, les conseils MSDN qu'ils devraient): http://msdn.microsoft.com/en-us /library/ms724901(VS.85).aspx

Une fois que les clés cible ont été remplacées vers un emplacement privé, InstallShield peut analyser la structure de registre et générer un script pour celle-ci.

Tout cela est conjecture, cependant, je ne sais pas ce que fait réellement InstallShield, mais je pense que je commencerais par RegMon pendant l'exécution de la construction d'InstallShield, pour voir si je pouvais discerner où les enregistrements vont, puis essayer de repérer ce qui ne va pas.

Autres conseils

Si vous souhaitez une explication détaillée (ou tout ce qu'il vous a permis de donner), vous souhaitez vous rendre sur le forum de la communauté InstallShield et poser une question à MichalU, un employé d'InstallShield. Si vous souhaitez savoir comment cela fonctionne en général, vous pouvez consulter le code source de WiX, car Heat a la capacité d’extraire des informations com.

Si l'extrait COM à la construction vous pose problème, vous pouvez le désactiver et insérer les données COM de manière statique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top