从安装程序二进制文件确定安装程序类型

时间:2013-08-05 20:37:40

标签: wix installer wise

是否可以检查现有的安装程序并确定它是否是WIX / WISE / OtherTechnology安装程序?

2 个答案:

答案 0 :(得分:1)

Windows Installer规范涵盖了这个:

Creating Application Summary property

ORCA由于某种原因没有显示此字段,但快速的代码片段显示了它:

using Microsoft.Deployment.WindowsInstaller;
foreach (string file in Directory.GetFiles(@"C:\windows\installer", "*.msi", SearchOption.TopDirectoryOnly))
{
  using (Database database = new Database(file, DatabaseOpenMode.ReadOnly))
  {
    Console.WriteLine("{0} : {1}", database.ExecutePropertyQuery("ProductName"), database.SummaryInfo.CreatingApp);
  }                
}

返回有趣的结果......

答案 1 :(得分:0)

可以使用Windows资源管理器检查所有文件:右键单击»属性,然后单击Verison或详细信息。它可能不是决定性的。默认情况下,使用WiX构建的Windows Installer程序包指示在使用Windows资源管理器可查看的属性中。要完全访问Windows Installer程序包,可以使用Windows SDK或InstMSI等中的Orca。如果有自定义操作二进制文件,您可以提取它们(作为DLL)并检查它们。自定义操作还可以使用属性或自定义表的某些命名约定。例如,WiX对某些属性名称使用WIX _...。同样,Dialogs可能具有可识别的名称或控件布局。

对于可执行文件,请尝试使用CFF Explorer或UniExtractor。此外,the.exe /?可能会告诉您。

但是,一般而言,没有规范或实际要求安装程序构建器或运行时应该是可识别的。