アップグレードする前に再起動が必要な場合があるドライバーをインストールする Windows インストーラー MSI パッケージがあります。ドライバーは、WriteRegistryValues の後に延期されたカスタム アクションによってインストールされます。再起動が必要な場合は、ロールバックが行われ、ユーザーは再起動してインストールを再度実行するように指示されます。
InstallExecuteSequence では、RemoveExistingProducts アクションは InstallValidate と InstallInitialize の間にあるため、アップグレードで再起動が必要であることが通知されると、以前のパッケージは削除されています。そのため、再起動が必要な場合、ロールバックと「これを再起動して再実行してください」というエラー メッセージが表示された後、ソフトウェアはインストールされなくなります。ユーザーが再起動してインストールを繰り返すと、問題なく動作します。
インストールの再起動と再開を自動化する必要があるため、ユーザーは実際に何もする必要はありません (もちろん、再起動に同意することは別として)。
レジストリの RunOnce キーにコマンドを書き込むと、再起動後に再度インストールを実行できますが、ドライバーのインストールを行う延期されたカスタム アクションで何が起こるかについて ForceReboot を調整するのは難しいと思います。また、再開されたインストールで何をすべきかを決定するのは難しいかもしれません。
ベスト プラクティスに関するアドバイスや潜在的な問題へのポインタは大歓迎です。