我正在使用wixsharp构建msi安装程序,并使用没有任何用户界面的命令行进行静默安装。我有许多类似于以下的自定义操作方法来检查先决条件。如果不满足先决条件,我想警告用户。
var project = new Project("ProductName",
new ManagedAction(new Id("OSVersion"), Check.CheckOSVersion, Return.check, When.Before, Step.InstallInitialize, Condition.NOT_Installed));
如果不满足条件,自定义操作方法将返回ActionResult.Failure。
我的批处理脚本位于
之下start /wait msiexec /i Installer.msi /qn /l*v installerlog.log
if "%errorlevel%" == "1013" goto err
if "%errorlevel%" == "1603" goto err
:err
echo "Error: Msiexec failed with errorlevel = %errorlevel%"
pause
exit /b %errorlevel%
是否可以使MSI安装程序返回自定义错误代码和自定义错误消息,例如"操作系统版本无效"并在命令行中显示相同的内容。 ?
答案 0 :(得分:1)
您无法更改msiexec exitcode - 它会返回Windows值,而不是您可以自定义的值。
自定义错误消息通常通过使用INSTALLMESSAGE_ERROR调用MsiProcessMessage的自定义操作完成,并且它们也会进入MSI日志。
我不知道在命令行中显示错误的确切含义,但静默安装确实是静默安装,安装不会显示任何内容。你想以什么方式进行静默安装但是还要显示一条消息,使其无声? / qb选项是否有效以便您看到进度和错误?