C# 运行msi安装程序命令行

C# 运行msi安装程序命令行,c#,wix,windows-installer,wixsharp,C#,Wix,Windows Installer,Wixsharp,我正在使用wixsharp构建msi安装程序,并使用命令行进行静默安装,无需任何用户界面。我有许多类似于下面的自定义操作方法来检查先决条件。如果不满足先决条件,我想警告用户 var project = new Project("ProductName", new ManagedAction(new Id("OSVersion"), Check.CheckOSVersion, Return.check, When.Before, Step.InstallInitialize, Condit

我正在使用wixsharp构建msi安装程序,并使用命令行进行静默安装,无需任何用户界面。我有许多类似于下面的自定义操作方法来检查先决条件。如果不满足先决条件,我想警告用户

var project = new Project("ProductName",
    new ManagedAction(new Id("OSVersion"), Check.CheckOSVersion, Return.check, When.Before, Step.InstallInitialize, Condition.NOT_Installed));
自定义操作方法返回ActionResult。如果不满足条件,则返回失败

下面是我的批处理脚本

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安装程序返回自定义错误代码和自定义错误消息(如操作系统版本无效),并在命令行中显示相同的消息

无法更改msiexec exitcode-它返回的是Windows值,而不是您可以自定义的值

自定义错误消息通常通过调用带有INSTALLMESSAGE_error的MsiProcessMessage的自定义操作来完成,它们也会进入MSI日志


我不知道在命令行中显示错误到底意味着什么,但是静默安装实际上是静默安装,安装不会显示任何内容。您希望以何种方式进行静默安装,同时显示消息,使其成为非静默安装?/qb选项是否有效,以便您看到进度和错误

我是安装人员的新手,我的问题可能是错误的/qb选项打开一个单独的对话框并显示session.Message值。我希望在命令行中显示相同的内容,而不显示任何对话框。是否有任何选项返回INSTALL_消息_错误,以便批处理脚本捕获该错误。?而且,我正在使用.NET中的WixSharp库创建安装程序。