0
我試圖在C#.Net中開發一個工具(使用Windows窗體)。我有一個MSI文件和一個MST(轉換文件)已經生成。我必須先讀取msi文件(使用表單menustrip菜單項作爲用戶的輸入),然後讀取mst文件(與msi作爲輸入的方式相同)。接下來,通過複製輸入的msi創建一個臨時msi(可能位於臨時位置)並將轉換應用於該臨時msi。然後,我可以按照我的要求查詢msi表(與mst合併)。我正在使用Visual Studio 2010專業版。這裏是我用Windows安裝程序參考庫寫入我的知識的一段代碼。如何使用c#代碼將變換mst應用於msi?
using System;
using System.ComponentModel;
using System.Windows.Forms;
using WindowsInstaller;
using System.Xml;
using System.IO;
//// Create an Installer instance
Type classType = Type.GetTypeFromProgID("WindowsInstaller.Installer");
Object installerObj = Activator.CreateInstance(classType);
Installer installer = installerObj as Installer;
Database database = Installer.OpenDatabase(File_MSI,MsiOpenDatabaseMode.
msiOpenDatabaseModeTransact);
database.ApplyTransform (File_MST, MsiTransformError.msiTransformErrorViewTransform);
WindowsInstaller.View viewmst = null;
string sqlquerymst = string.Format("Select * FROM _TransformView");
viewmst = database.OpenView(sqlquerymst);
viewmst.Execute(null);
database.Commit();
viewmst.Close();
string sql = String.Format("Select Property,Value FROM Property");
WindowsInstaller.View view = database.OpenView(sql);
view.Execute(null);