ユーザーインターフェイスなしのコマンドラインを使用して、サイレントインストールでwixsharpを使用してmsiインストーラをビルドします。前提条件をチェックするために、以下のような多くのカスタムアクションメソッドを用意しています。前提条件が満たされていない場合、ユーザーに警告したい。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%
を下回っているが、それは、「OSのバージョンが無効です。」のようなMSIインストーラリターンカスタムエラーコードとカスタムエラーメッセージを作成し、コマンドラインで同じことを表示することが可能です。 ?
私はインストーラに新しいです、そして、私の質問は間違っているかもしれません。/qbオプションは別のダイアログを開き、session.Message()値を表示します。私はダイアログボックスなしでコマンドラインに同じものを表示したい。バッチスクリプトでキャプチャできるようにINSTALL_MESSAGE_ERRORを返すオプションはありますか?また、.NETでWixSharpライブラリを使用してインストーラを作成しています。 –