Wie liest man eine MSI-Datei

November 20

Die Eigenschaften einer Microsoft Windows Installer Object Library (MSI)-Datei lesen hilft den Programmierer, Version, Hersteller und Produkt gespeichert in der Datei zu identifizieren. Dies ist hilfreich, wenn die Softwareanwendung die Produktinformationen für eine bestimmte Installation finden muss. Eine MSI-Datei ist ein komprimiertes Archiv, das alle benötigten Dateien, um eine Anwendung zu installieren Pakete. Die Eigenschaften dieser Dateien lesen kann erfolgen mit ASP.

Anweisungen

1 Importieren Sie die erforderlichen Namespace-Bibliotheken. Die Methoden und Eigenschaften für eine MSI-Datei gelesen werden mit den folgenden Namespace-Code importiert:WindowsInstaller verwenden;

2 Die Klassen instanziieren und einer Variablen zuweisen. Es gibt drei Klassen in ASP. Der folgende Code richtet die Klassen zur späteren Verwendung im Code:Geben Sie MyType = Type.GetTypeFromProgID ("WindowsInstaller.Installer");

Objekt TheInstallObject = Activator.CreateInstance (MyType);

Installateur-MyInstaller = TheInstallObject als Installer;

3 Öffnen Sie das MSI-Archiv zum Lesen. Die \"0\" Parameter gibt das Programm öffnet die Datei, um es zu lesen. Mit \"1\" wird es für das Schreiben zu aktivieren:Datenbank-TheMSIdb = myInstaller.OpenDatabase (\"C:\themsifile.msi\", 0);

4 Verwenden Sie SQL Datenbank-Dateispeicher abgefragt. Die Datei enthält eine Tabelle der Eigenschaften innerhalb des Archivs. Mithilfe von SQL Abfragen und die Eigenschaften im Code auswerten zurückgegeben. Die folgende Syntax extrahiert die Version-Eigenschaft innerhalb der MSI-Datei:Zeichenfolge MyQuery = String.Format (Wählen Sie * aus wo Eigenschaft = "{0}" ", \"ProductVersion\");

Anzeigen MyPropertyView = theMSIdb.OpenView (MyQuery);

myPropertyView.Execute (Null);

5 Die zurückgegebene Eigenschaft einer Variablen zuweisen. Der folgende Code weist die abgerufenen Produktversion auf eine Variable, die zum Anzeigen von Informationen für den Benutzer verwendet werden kann:Rekord-MyRec = myPropertyView.Fetch();

Wenn (MyRec! = Null) {}String StrVersion = myRec.get_StringData (1);

}

6 Drucken Sie die Versionsnummer angezeigt. Der folgende Code zeigt die abgerufene Informationen aus der MSI-Datei:Console.WriteLine(strVersion);