2009-06-22 8 views
1

J'ai essayé d'interroger Windows (XP et Vista) pour voir si une version de l'un de nos logiciels est installée avec UpgradeCode (Dans ce cas, le UpgradeCode est le seul GUID statique de la version à la version). J'ai essayé de le faire avec WMI et l'objet WindowInstaller.Installer mais n'ai pas réussi. Je dois écrire cette requête de C#. Merci pour toute aide ou direction que vous pouvez fournir.Requête Windows pour si une application est installée par UpgradeCode

Répondre

1

Vous devez utiliser la fonction MsiEnumRelatedProducts de MSI.DLL. Ce lien décrit comment l'utiliser:

http://msdn.microsoft.com/en-us/library/aa370103(VS.85).aspx

Il est une DLL non gérée de sorte que vous devrez DllImport il. Je l'utilise sur VB.net pour vérifier le code.

La clé est que plusieurs packages installés peuvent avoir le même code de mise à niveau. Si le premier appel à cette fonction renvoie un code de package, vous pouvez ignorer de nouveau la vérification et agir en conséquence.

Questions connexes