Nous avons un msi (créé à l'aide du projet d'installation de Visual Studio) qui enregistre un composant COM. À l'installation tout fonctionne bien et à la fin le registre contient une clé sous HKEY_CLASSES_ROOT pour le composant com faisant référence à la clé de registre CLSID pointant sur la DLL.msi personnalisé supprime les clés de registre nécessaires
Nous avons construit notre msi à travers un environnement CI qui construit une version incrémentée du msi chaque fois que le code change. Si j'essaie d'exécuter une version supérieure de msi sur une machine sur laquelle le produit est déjà installé, la clé de registre du composant com est supprimée. C'est mauvais. Si je réexécute le msi pour réparer l'installation, la clé est ajoutée et tout fonctionne correctement.
Des idées sur ce qui se passe ou comment résoudre ce problème?
Voici quelques pertinents (je l'espère) conservent des informations de la mise à jour:
MSI (s) (20:38) [14:43:42:158]: Executing op: RegOpenKey(,Key=X.Validation.ValidationInitializationLogger,,BinaryType=0,)
MSI (s) (20:38) [14:43:42:158]: Executing op: RegAddValue(,Value=X.Validation.ValidationInitializationLogger,)
WriteRegistryValues: Key: \Software\Classes\X.Validation.ValidationInitializationLogger, Name: , Value: X.Validation.ValidationInitializationLogger
MSI (s) (20:38) [14:43:42:158]: Executing op: RegOpenKey(,Key=CLSID\{0E5EA3AC-6F32-3071-BB20- F99DC060C76E}\ProgId,,BinaryType=0,)
MSI (s) (20:38) [14:43:42:158]: Executing op: RegAddValue(,Value=X.Validation.ValidationInitializationLogger,)
WriteRegistryValues: Key: \Software\Classes\CLSID\{0E5EA3AC-6F32-3071-BB20-F99DC060C76E}\ProgId, Name: , Value: X.Validation.ValidationInitializationLogger
MSI (s) (20:38) [14:43:42:158]: Executing op: RegOpenKey(,Key=CLSID\{0E5EA3AC-6F32-3071-BB20- F99DC060C76E}\InprocServer32,,BinaryType=0,)
MSI (s) (20:38) [14:43:42:158]: Executing op: RegAddValue(,Value=mscoree.dll,)
WriteRegistryValues: Key: \Software\Classes\CLSID\{0E5EA3AC-6F32-3071-BB20- F99DC060C76E}\InprocServer32, Name: , Value: mscoree.dll
MSI (s) (20:38) [14:43:42:174]: Executing op: RegAddValue(Name=Class,Value=X.Validation.ValidationInitializationLogger,)
WriteRegistryValues: Key: \Software\Classes\CLSID\{0E5EA3AC-6F32-3071-BB20- F99DC060C76E}\InprocServer32, Name: Class, Value: X.Validation.ValidationInitializationLogger
...
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegRemoveValue(Name=Class,Value=X.Validation.ValidationInitializationLogger,)
RemoveRegistryValues: Key: \Software\Classes\CLSID\{A2C211B7-A4B7-34CB-8996- 98287F881E24}\InprocServer32, Name: Class
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegRemoveValue(Name=ThreadingModel,Value=Both,)
RemoveRegistryValues: Key: \Software\Classes\CLSID\{A2C211B7-A4B7-34CB-8996- 98287F881E24}\InprocServer32, Name: ThreadingModel
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegRemoveValue(Name=CodeBase,Value= [#_18CD862A59400E9C1978B46E816FB049],)
RemoveRegistryValues: Key: \Software\Classes\CLSID\{A2C211B7-A4B7-34CB-8996-98287F881E24}\InprocServer32, Name: CodeBase
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegOpenKey(,Key=X.Validation.ValidationInitializationLogger,,BinaryType=0,)
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegRemoveValue(,Value=X.Validation.ValidationInitializationLogger,)
RemoveRegistryValues: Key: \Software\Classes\X.Validation.ValidationInitializationLogger, Name:
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegOpenKey(,Key=CLSID\{A2C211B7-A4B7-34CB-8996-98287F881E24}\ProgId,,BinaryType=0,)
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegRemoveValue(,Value=X.Validation.ValidationInitializationLogger,)
RemoveRegistryValues: Key: \Software\Classes\CLSID\{A2C211B7-A4B7-34CB-8996-98287F881E24}\ProgId, Name:
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegOpenKey(,Key=CLSID\{A2C211B7-A4B7-34CB-8996-98287F881E24},,BinaryType=0,)
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegRemoveValue(,Value=X.Validation.ValidationInitializationLogger,)
RemoveRegistryValues: Key: \Software\Classes\CLSID\{A2C211B7-A4B7-34CB-8996-98287F881E24}, Name:
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegOpenKey(,Key=X.Validation.ValidationInitializationLogger\CLSID,,BinaryType=0,)
MSI (s) (20:EC) [14:43:43:924]: Executing op: RegRemoveValue(,Value={A2C211B7-A4B7-34CB-8996-98287F881E24},)
RemoveRegistryValues: Key: \Software\Classes\X.Validation.ValidationInitializationLogger\CLSID, Name:
Il semble que les clés de Registre sont ajoutées puis retirées à la fin de la mise à jour.
Tout ce que je peux ajouter pour que les gens puissent mieux répondre? – John