WiX を使用して、ユーザーごとにブラウザー プラグインをインストールする MSI を生成しています。DPInst (昇格された特権が必要) を使用してドライバーをインストールするカスタム アクションがあります。
UAC が有効な場合、インストールは正常に機能します。Windows に昇格を促すプロンプトが表示されます。ただし、UAC を無効にして通常のユーザー アカウントにインストールしようとすると、コンピューターがフリーズするまで dpinst.exe が生成されます。(最終カウントで約1000回)。
私が持って<InstallExecuteSequence>
いる:
<Custom Action="Install_Drivers" After="InstallFiles">NOT Installed</Custom>
私のカスタムアクションは次のとおりです。
<CustomAction Id='Install_Drivers' Execute='deferred' Directory='DRIVERS' ExeCommand='"[DRIVERS]DPinst.exe" /SW /SA' Return='ignore' Impersonate='no'/>
これReturn='ignore'
までのところ、dpinst.exe は常に0 以外のコードを返すためです。
UAC が無効になっているときにカスタム アクションが正しく失敗することを確認するにはどうすればよいですか? 関連して、ドライバーのインストールが失敗したときにユーザーにカスタム メッセージを表示することはできますか?
詳細情報: 現在 Windows 7 で開発していますが、WinXP 以降を対象としています。
編集インストールのログを見ると、これらは関連する行のようです:
Executing op: CacheSizeFlush(,)
Executing op: ActionStart(Name=Install_Drivers,,)
Executing op: CustomActionSchedule(Action=Install_Drivers,ActionType=3170,Source=C:\long_redacted\Drivers\,Target="C:\long_redacted_path\Drivers\DPinst.exe" /SW /SA,)
Disallowing shutdown. Shutdown counter: 0
CustomAction Install_Drivers returned actual error code 1073807364 but will be translated to success due to continue marking
シャットダウンについてのちょっとしたことは、ログオフしたときにインストールを停止したことだと思います。(キャンセルしても効果はないようです)。