0

ユーザーインターフェイスなしでコマンドラインを使用したサイレントインストールで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インストーラーがカスタムエラーコードと「OSバージョンが無効です」などのカスタムエラーメッセージを返して、コマンドラインに同じものを表示することは可能ですか? ?

4

1 に答える 1

1

msiexec の終了コードを変更することはできません。カスタマイズできる値ではなく、Windows の値を返します。

カスタム エラー メッセージは通常、INSTALLMESSAGE_ERROR を指定して MsiProcessMessage を呼び出すカスタム アクションで作成され、MSI ログにも記録されます。

コマンド ラインにエラーが表示されることの正確な意味はわかりませんが、サイレント インストールは実際にはサイレント インストールであり、インストールでは何も表示されません。どのような方法でサイレント インストールを行い、同時にメッセージを表示して非サイレント インストールを行いますか? /qb オプションは、進行状況とエラーを確認できるように機能しますか?

于 2017-05-30T19:31:47.627 に答える