Notre produit contient un serveur COM in-proc VC++ ATL avec deux classes exposées COM - ClassA et ClassB. Ce serveur COM est ajouté dans un package d'installation Install Shield 2008 et la propriété "COM Extract at Build" est définie pour le composant.Comment fonctionne Install Shield "COM Extract at Build"?
ClassA et ClassB sont exposés exactement de la même manière par le composant - il y a un fichier .rgs pour chacun, les deux fichiers .rgs sont compilés dans les ressources du composant et CAtlModule :: UpdateRegistryFromResourceS() est appelé pour les deux.
Toutefois, 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, seul l'un d'entre eux est exposé par Install Shield.
Comment Install Shield détecte-t-il les modifications qu'il doit apporter au registre? Que devrions-nous vérifier pour détecter la source du problème?