【问题标题】:how to find the status of executed MSI from the command prompt如何从命令提示符中查找已执行 MSI 的状态
【发布时间】:2013-03-22 12:20:51
【问题描述】:

我使用 WiX 创建了一个安装程序,它将使用命令提示符执行。我正在寻找的是一种在使用命令提示符执行时检查相同状态而不检查事件日志或安装程序日志的方法。

在下面找到代码sn-p。

<Property Id="ISSQLSERVERINSTALLED">
  <RegistrySearch Id="IsSqlExpressServiceInstalled" Root="HKLM"
                  Key="SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup\CurrentVersion"
                  Name="CurrentVersion" Type="raw"/>
</Property>
<Condition Message="Microsoft SQL Server 2005 must be installed">
  <![CDATA[ Installed OR ISSQLSERVERINSTALLED ]]>
</Condition>

我正在使用 msiexec /i 命令安装软件包,安装后我检查了 %errorlevel% 变量,但即使安装失败,它也会返回 0。有没有办法在条件中设置错误代码,或者有没有其他方法可以检查安装状态?

提前致谢

【问题讨论】:

  • 正如 Ciprian 所说,您可以使用 msiexec /i "C:\...\setup.msi" /l*xv log.txt 启用日志记录。然后使用net helpmsg 0000 了解每条错误消息的含义。例如 1603 是安装过程中的致命错误。
  • 感谢您的回复,但我不想使用日志。我想要的是,运行 msiexec /i msiname.msi 后检查错误级别

标签: wix wix3.6 windows-installer


【解决方案1】:

在启动失败的情况下,%errorlevel% 设置为 1603。创建安装日志以获取有关真正问题的详细信息。

【讨论】:

  • 当我通过命令行运行 msi 时,msiexec /i msiname.msi 它给出了上面代码中指定的消息“必须安装 Microsoft SQL Server 2005”。但是然后我在同一个命令行窗口中运行 echo %errorlevel%,它给出了 '0',我希望有一些错误代码,例如 1603
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多