2010-10-31 3 views
1

Il y a une valeur de registre particulière que mon application crée parfois pendant l'exécution, c'est-à-dire PAS lors de l'installation. Cette valeur est dans une clé de registre que je ne veux pas supprimer; Je veux juste supprimer la valeur que j'ai créée. Parce qu'il n'est pas créé lors de l'installation, il n'est pas automatiquement supprimé lors de la désinstallation par Windows Installer. Que puis-je faire dans le MSI pour supprimer cette valeur si elle existe? Le tableau Registry ne semble pas avoir cette option. Cela signifie-t-il que je dois écrire une action personnalisée? Si oui, quelqu'un a des exemples? J'utilise Wise Windows Installer Edition pour créer le MSI.Comment supprimer un seul registre VALUE lors de la désinstallation d'un MSI?

Également publié here.

+0

Il est awfull que MSI n'a pas fourni la technologie standard pour éliminer RegistryValue. Comment, par exemple, nous devrions supprimer HKCU/Windows/Courant/Version/Exécuter/Mon programme –

Répondre

0

Vous devez effectuer une action personnalisée.

J'ai terminé l'implémentation avec une action personnalisée placée après la WriteRegistryValues ​​dans la section différée.

Les .vbs pour supprimer la clé est comme ceci:

const HKLM = &H80000002 
strComputer = "." 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") 
strKeyPath = "SOFTWARE\Mozilla\Firefox\Extensions" 
strValueName = "[email protected]" 
oReg.DeleteValue HKLM,strKeyPath,strValueName 
1

Désolé, vous avez besoin d'une action personnalisée.

+0

Malheureusement, c'est pour supprimer les entrées de registre lorsque les composants sont _installés_ pas désinstallés. – Rory

+0

Vous avez raison. Je pensais le long de la table RemoveFile qui a un attribut appelé msidbRemoveFileInstallModeOnRemove. Je ne sais pas quelle est cette valeur de registre, mais serait-il acceptable de la laisser sur la désinstallation, mais assurez-vous qu'elle soit supprimée lors de la prochaine installation? Du point de vue de l'exécution des applications, je pense que le résultat serait le même. Ou est-ce que cette valeur de registre manipule quelque chose au niveau de l'OS et non pas l'application elle-même? Je sais que pour écrire une nouvelle valeur lors de la désinstallation, j'avais besoin d'une action personnalisée. –

+0

La valeur est l'enregistrement de mon logiciel comme une extension avec Firefox, donc non, ce serait mauvais de le laisser là car il affecte d'autres logiciels. Une action personnalisée ce sera alors! – Rory

Questions connexes