Question

Mon programme d'installation InstallShield ne semble pas enregistrer correctement plusieurs de ses DLL COM, même si j'ai actualisé les informations COM pour celles-ci dans le programme d'installation. Si j'exécute manuellement regsvr32 après l'installation, tout va bien.

J'ai remarqué qu'après l'installation, les valeurs InprocServer32 figurant dans le registre de mes composants contenaient des chaînes d'apparence aléatoire, qui, à mon avis, sont des descripteurs Darwin , qui, selon moi, remplaceront l'emplacement du chemin d'accès en texte clair. . Lorsque j'exécute manuellement regsvr32, ces descripteurs Darwin disparaissent. Mon hypothèse actuelle est que les informations encodées dans ces descripteurs sont incorrectes. Ainsi, lorsque mon programme tente d'instancier les composants COM, il utilise les informations de descripteur Darwin incorrectes et échoue, même si le chemin d'accès en clair aux DLL est correct.

Quelqu'un peut-il nous éclairer sur la manière dont je peux voir si tel est le cas, décoder ces descripteurs, empêcher InstallShield de générer des descripteurs Darwin ou réparer de toute autre manière mon programme d'installation?

Était-ce utile?

La solution

Je comprends que les descripteurs darwin sont le service d’installation de Windows qui effectue le suivi des points d’entrée COM vers le fichier .MSI original (afin qu’il puisse soigner le fichier .dll s’il est supprimé, etc.). Le MSI contient la valeur réelle.

Depuis que vous avez reconstruit les informations COM, avez-vous désinstallé le MSI de votre ordinateur puis réinstallé (de sorte que msiexec ne se contente pas d'effectuer une installation de maintenance plutôt qu'une installation complète).

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