Domanda

Il nostro prodotto contiene un server COM in-proc VL ++ ATL con due classi esposte COM: ClassA e ClassB. Questo server COM viene aggiunto in un pacchetto di installazione di Install Shield 2008 e "Estrazione COM alla build" la proprietà è impostata per il componente.

ClassA e ClassB sono esposte in modo esattamente identico dal componente: esiste un file .rgs per ciascuno, entrambi i file .rgs sono compilati nelle risorse del componente e viene richiamato CAtlModule :: UpdateRegistryFromResourceS () per entrambi.

Tuttavia, quando eseguiamo regsvr32 sul server COM, entrambe le classi vengono esposte correttamente nel registro, ma quando eseguiamo l'installazione del pacchetto solo una di esse viene esposta da Install Shield.

In che modo Install Shield rileva quali modifiche al registro deve apportare? Cosa dovremmo controllare per rilevare l'origine del problema?

È stato utile?

Soluzione

Sospetto che utilizzino RegOverridePredefKey (almeno i suggerimenti MSDN dovrebbero): http://msdn.microsoft.com/en-us /library/ms724901(VS.85).aspx

Dopo che le chiavi di destinazione sono state sovrascritte in una posizione privata, InstallShield può analizzare la struttura del registro e generare uno script per essa.

Questa è tutta una congettura, tuttavia, non so cosa faccia effettivamente InstallShield, ma penso che inizierei con RegMon mentre la build di InstallShield è in esecuzione, per vedere se sono riuscito a discernere dove vanno le registrazioni e quindi provare a individuare ciò che non va.

Altri suggerimenti

Se vuoi una spiegazione dettagliata (o quanto gli è permesso dare), vorrai andare al forum della Community InstallShield e pubblicare una domanda per il dipendente InstallShield MichalU. Se vuoi sapere in generale come funzionano queste cose puoi guardare il codice sorgente su WiX poiché Heat ha la capacità di estrarre informazioni com.

Se l'estrazione COM durante la creazione ti dà problemi, puoi disattivarla e inserire i dati COM in modo statico.

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