[英]Read Platform information from .msi
我正在使用Microsoft.Deployment.WindowsInstaller
庫從.msi文件中讀取值。 屬性沒問題,也可以讀出摘要信息,例如:
static void Main(string[] args)
{
using (var database = new QDatabase(@"C:\myMsi.msi", DatabaseOpenMode.ReadOnly))
{
Console.WriteLine(database.ExecutePropertyQuery("ProductVersion"));
Console.WriteLine(database.ExecutePropertyQuery("ProductName"));
Console.WriteLine(database.ExecutePropertyQuery("Manufacturer"));
Console.WriteLine(database.ExecutePropertyQuery("ARPREADME"));
}
}
QDatabase
對象甚至有一個很好的SummaryInfo
屬性,包含摘要信息。 但是,我還沒有找到如何獲得.MSI所針對的平台。
似乎可以讀出平台,因為Orca也這樣做(在Orca中打開摘要信息時可以看到平台)。
如何獲得.msi所針對的平台?
您正在使用一個用於執行數據庫LINQ查詢的類。 ExecutePropertyQuery是一種簡化查詢Property表的方法 。 如您所知,您所尋求的信息不在屬性表中,而是在摘要信息流中 。 特別:
using Microsoft.Deployment.WindowsInstaller;
using(Database database = new Database(PATH_TO_MSI, DatabaseOpenMode.ReadOnly))
{
Console.WriteLine(database.SummaryInfo.Template);
}
QDatabase類在擴展Database類時也會公開SummaryInfo屬性。
可查詢的MSI數據庫 - 使用LINQ查詢功能擴展基本數據庫類以及公共表的預定義實體類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.