Tecnología

Inicio

Cómo leer un archivo MSI

La lectura de las propiedades de una biblioteca de objetos de archivo de Microsoft Windows Installer (MSI) ayuda al programador identificar la versión, el fabricante y el producto almacenado en el archivo. Esto es útil cuando la aplicación de software necesita para encontrar la información del producto para una instalación en particular. Un archivo MSI es un archivo comprimido que empaqueta todos los archivos necesarios para instalar una aplicación. La lectura de las propiedades de estos archivos se pueden lograr mediante ASP.NET.

Instrucciones

1 Importar las bibliotecas de espacios de nombres necesarios. Los métodos y propiedades para leer un archivo MSI se importan con el siguiente código de espacio de nombres:
utilizando WindowsInstaller;

2 Crear instancias de las clases y asignarlos a una variable. Hay tres clases utilizadas en ASP. El código siguiente, se configura las clases para su uso posterior en el código:
Escriba myType = Type.GetTypeFromProgID ( "WindowsInstaller.Installer");

Objeto theInstallObject = Activator.CreateInstance (myType);

Instalador myInstaller = theInstallObject como instalador;

3 Abrir el archivo MSI para la lectura. El \ "0 \" parámetro indica que el programa está abriendo el archivo para leerlo. El uso de \ "1 \" permitirá que para la escritura:
Base de datos theMSIdb = myInstaller.OpenDatabase (\ "C: \ themsifile.msi \", 0);

4 Utilice SQL para consultar la base de datos de almacén de archivo. El archivo contiene una tabla de propiedades dentro del archivo. El uso de consultas SQL y devuelve las propiedades de evaluar en el código. La siguiente sintaxis extrae la propiedad de versión en el archivo MSI:
cadena myQuery = String.Format (SELECT * FROM propiedad donde la propiedad = '{0}' ", \" ProductVersion \ ");

Ver myPropertyView = theMSIdb.OpenView (myQuery);

myPropertyView.Execute (null);

5 Asignar la propiedad retorno a una variable. El siguiente código asigna la versión del producto recuperado a una variable que puede ser utilizado para mostrar información al usuario:
Registro myRec = myPropertyView.Fetch ();

si (myRec! = null) {
cadena strVersion = myRec.get_StringData (1);

}

6 Imprimir el número de versión para la pantalla. El código siguiente muestra la información recuperada desde el archivo MSI:
Console.WriteLine (strVersion);