Ich habe schon durchgemacht:Was sind ProductCode & UpgradeCode & GUID? Wie kann festgestellt werden, ob eine bestimmte Anwendung/Bibliothek bereits auf dem Benutzercomputer installiert ist?
Check if the application is already installed
Detecting if a program is already installed with NSIS
http://nsis.sourceforge.net/Add_uninstall_information_to_Add/Remove_Programs
Meine Fragen sind wenig mehr in die Tiefe und wenig allgemeiner.
Also, wie Sie mein Problem verstanden habe, möchte ich überprüfen, ob "Certain Applications" bereits auf dem Computer des Benutzers installiert sind? Ich erstelle das Installationsprogramm mit Advanced Installer.
ersten paar Fragen:
- Was
Upgrade Code
ist? Das erweiterte Installationsprogramm verfügt über die Option Produktversion (durch Upgrade-Code identifizieren). - Was ist
Product Code
? Advanced Installer Produktversion (durch Produktcode identifizieren) - Komponente ist installiert:
GUID
. Was ist GUID?
Alle oben genannten drei hat Werte wie folgt aus:
{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3} Ich weiß nicht, was diese Werte sind, aber es scheint, dass Computer-Software erkennt diese Art mit von seltsamer ID.
Meine erforderlichen Anwendungen sind
- MySQL DBMS
- MySQL .NET Connector
Eine Tatsache, dass ich ein Upgrade-Code & Product Code entdeckt wird, kann aus seiner "msi installer" extrahiert werden. Also, ich extrahierte diese Werte von der Installation & Registrierung.
MySQL Server
Installer = mysql-5.1.43-win32.msi
Upgrade Code = {49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}
Product Code = {0ECED7D8-FF53-4DC9-958E-C2177F528DE4}
GUID (for component Installed) = ????
Uninstall Path = HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0ECED7D8-FF53-4DC9-958E-C2177F528DE4}
Installer = mysql-5.1.46-win32.msi
Upgrade Code = {49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}
Product Code = {EA8FDE5A-2B33-4EDD-B7E7-8D179DF731A5}
GUID (for component Installed) = ????
Uninstall Path = HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{EA8FDE5A-2B33-4EDD-B7E7-8D179DF731A5}
Installer = mysql-essential-5.1.46-win32.msi
Upgrade Code = {49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}
Product Code = {AD33AF2C-6485-4106-B012-1D9CDC88A454}
GUID (for component Installed) = ????
Uninstall Path = HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AD33AF2C-6485-4106-B012-1D9CDC88A454}
Installer = mysql-essential-5.0.89-win32.msi
Upgrade Code = {49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}
Product Code = {9A4DA7EF-A7B9-4282-90AD-10976AA24E69}
GUID (for component Installed) = ????
Uninstall Path = HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9A4DA7EF-A7B9-4282-90AD-10976AA24E69}
Beobachtung von oben Daten:
UpgradeCode
einer Software ist konstant & unabhängig von seiner Version ist. Aber überraschenderweise gibt es keinen einzigen Eintrag in der Registrierung mit dem WertUpgradeCode
- ist versionsspezifische & es wird von der MSI intern verwendet, die eigentlich sinnvoll ist, weil. Mit MSI können Anwendungen verschiedener Versionen nebeneinander installiert werden.
- Ich weiß nicht, wie man GUID findet.
MySQL ADO.NET-Treiber
Installer = mysql.data.5.2.5.msi
Upgrade Code = ---
Product Code = {5FD88490-011C-4DF1-B886-F298D955171B}
GUID (for component Installed) = ????
Installer = mysql.data.6.2.2.msi
Upgrade Code = ---
Product Code = {5FD88490-011C-4DF1-B886-F298D955171B}
GUID (for component Installed) = ????
UninstallPath =HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{5FD88490-011C-4DF1-B886-F298D955171B}
Installer = mysql.data.6.2.3.msi
Upgrade Code = ---
Product Code = {5FD88490-011C-4DF1-B886-F298D955171B}
GUID (for component Installed) = ????
Beobachtungen von oben Daten:
- raschend, konnte es nicht Upgrade von Installateuren mysql.data finden * msi... Ich wundere mich warum? Dies widerspricht meiner obigen Beobachtung.
- 10 für alle verschiedenen Versionen ist hier gleich. Dies widerspricht wiederum meinen obigen Beobachtungen.
- Ich weiß immer noch nicht, wie man GUID findet. Jetzt
,
- Was genau sind diese
ProductCode
&UpgradeCode
&GUID
. - Was bedeutet was?
- Warum widersprechen obige Beobachtungen?
- Ich interessiere mich nicht für Versionen. Ich möchte nicht auf Anwendungsname dann wie überprüfe ich, ob MySQL Treiber & MySQL ADO .NET.
- Wird die Erkennung einfacher, wenn es sich um .NET-Assemblies handelt? Wie geht es dann? Ich möchte die Assemblys nicht mit meinen bereitgestellten Dateien versenden.