Domanda

Il mio programma di installazione InstallShield non sembra registrare correttamente alcune delle sue DLL COM, anche se ho aggiornato le informazioni COM per loro nel programma di installazione. Se eseguo manualmente regsvr32 dopo l'installazione, va tutto bene.

Ho notato che dopo l'installazione, ho valori InprocServer32 nel registro per i miei componenti contenenti stringhe dall'aspetto casuale, che credo siano descrittori Darwin , che comprendo sostituiranno la posizione del percorso in chiaro se presente . Quando eseguo manualmente regsvr32 questi descrittori Darwin scompaiono. La mia attuale ipotesi è che le informazioni codificate in questi descrittori siano errate, quindi quando il mio programma tenta di creare un'istanza dei componenti COM, utilizza le informazioni errate sul descrittore Darwin e fallisce, anche se il percorso in chiaro alle DLL è corretto.

Qualcuno può fare luce su come posso vedere se questo è il caso, decodificare questi descrittori, impedire a InstallShield di generare descrittori Darwin o riparare il mio programma di installazione?

È stato utile?

Soluzione

Comprendo che i descrittori di darwin sono il servizio di installazione di Windows che tiene traccia dei punti di ingresso COM indietro al .MSI originale (in modo che possa curare il .dll se viene eliminato, ecc.). L'MSI contiene il valore effettivo.

Presumibilmente da quando hai ricostruito le informazioni COM, hai disinstallato l'MSI dal tuo computer e reinstallato (quindi msiexec non sta solo facendo un'installazione di manutenzione piuttosto che un'installazione completa).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top