簡體   English   中英

從.msi中讀取平台信息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM