0

我们有一个使用 .MSI 文件部署的大型 C# 应用程序,该文件是通过 Visual Studio 2010(或 MSBuild.exe)从 .VDProj 文件构建的。正常运行时,.MSI 安装程序将检查是否安装了某些软件,并满足某些最低版本,如果不满足版本条件,将产生有用的错误消息并退出。

这一切都很好。但是,我们正在尝试使用 msiexec.exe 以静默方式运行现有安装程序。如果已经安装了 MSI 所需的附加软件,那么我们会从 msiexec 返回 0 错误代码,同样,如果 MSI 由于系统上不存在其他软件或低于最低版本要求而失败,我们会得到一个返回非零错误代码。

有没有办法以编程方式询问 .MSI 文件并找出它的启动条件是什么?我尝试使用 msiexec 从 .MSI 中提取文件,但我仍然看不到任何类型的配置文件,其中列出了安装的最低版本要求。

任何帮助将非常感激。

4

1 回答 1

1

询问 MSI 以查看里面的条件确实会给你上述条件的列表,但不是哪一个失败了。您可能希望使用 /L 运行 msiexec 以切换以获得更好的日志记录(请参阅文档以获取精确的语法)。

如果条件列表足够,我建议看一下 Orca ( MSDN ),这是一种窥探 .msi 文件的简单方法。

于 2011-02-22T13:25:34.723 回答