製品をインストールする MSI インストーラーがあり、この製品には広く使用されている API dll がいくつか含まれています。これらの dll は、アップグレード中に制御できないプロセスに読み込まれる可能性があります (たとえば、explorer.exe または svchost を閉じるようにユーザーに要求することはできません)。そのため、MSI のアップグレード中にこれらの dll はロックされ、再起動しないとアップグレードできません。再起動せずにアップグレードできるようにする必要があります。これらの API dll は非常に安定しており、これらの dll の新しいバージョンが新しい実行中のプロセスにロードされるときに、古いコピーを古いプロセスで動作させたままにしても問題ありません。したがって、MSI を使用しなかったときは、標準的なトリックを使用しました。ファイルの名前を変更し、再起動時に削除するようにマークし、新しいファイルを書き込みます。
MSIでそれを行う最良の方法は何ですか? この標準的なトリックを実行するカスタム アクションを作成する必要がありますか? それとも、MSI にはそれを行うためのより良い方法がありますか?
ありがとうございました!