public static MsiInfo GetMsiInfo(string filename) { // Create an Installer instance Type classType = Type.GetTypeFromProgID("WindowsInstaller.Installer"); var installer = Activator.CreateInstance(classType) as Installer; if (installer == null) throw new Exception("Unable to create instance of COM Object WindowsInstaller.Installer"); // Open the msi file for reading // 0 - Read, 1 - Read/Write Database database = installer.OpenDatabase(filename, 0); var info = new MsiInfo { Manufacturer = GetProperty(database, "Manufacturer"), ProductName = GetProperty(database, "ProductName"), ProductCode = GetProperty(database, "ProductCode"), ProductVersion = GetProperty(database, "ProductVersion"), }; Marshal.FinalReleaseComObject(database); return info; }
public static MsiInfo GetMsiInfo(string filename) { // Create an Installer instance Type classType = Type.GetTypeFromProgID("WindowsInstaller.Installer"); var installer = Activator.CreateInstance(classType) as Installer; if (installer == null) { throw new Exception("Unable to create instance of COM Object WindowsInstaller.Installer"); } // Open the msi file for reading // 0 - Read, 1 - Read/Write Database database = installer.OpenDatabase(filename, 0); var info = new MsiInfo { Manufacturer = GetProperty(database, "Manufacturer"), ProductName = GetProperty(database, "ProductName"), ProductCode = GetProperty(database, "ProductCode"), ProductVersion = GetProperty(database, "ProductVersion"), }; Marshal.FinalReleaseComObject(database); return(info); }