他の実行中のアプリケーションを閉じる必要がないようにMSIを変更するにはどうすればよいですか?面白いことに、アンインストールが完了する前にアプリケーションを手動で閉じると、Outlook、Firefoxなどを閉じるように要求されません。MSI - アプリケーションを閉じる必要はありません
答えて
InstallValidateアクションによってプロンプトが自動的に表示されるため、動作を変更することはできません。代わりに、InstallValidateの前にアプリケーションを閉じるカスタムアクションを使用することで、それを防ぐことができます。
これは通常、WM_CLOSEをメインのアプリケーションウィンドウに送信することによって行われます(アプリケーションがこれを機能させるには、このメッセージを処理する必要があります)。
他のアプリケーション(Outlook、Firefoxなど)も、Windowsインストーラが実行中のアプリケーションを検出するのにあまりよくないため、プロンプトに表示されます。基本的にはファイルの依存関係をチェックします(たとえば、複数のアプリケーションが同じDLLまたはランタイムを使用している場合など)、誤検出が発生する可能性があります。
MSIは再起動シナリオを使用してロックされたファイルを自動的に処理します。アプリケーションを閉じることは、再起動を防ぐためです。再起動を抑止できますが、再起動するまでファイルは実際には置き換えられません。
あなたが探している動作は、どのようなものですか? InstallValidateとシステム再起動へのリンクをたどってそこから
:
はところで、読書をお勧めします。
mrnxがここに書いているように、実行中のアプリケーションのチェックは、InstallValidateの間に行われます。 しかし、アプリケーションを停止することをお勧めします。他のチェックが失敗する可能性があり、MSIは実行中のアプリケーションを含むMSIを実行する前の状態にシステムを復旧できなければなりません。
さらに、これらのチェックは「遅延」ではなく「即時」として実行されます。アプリケーションを停止する
IMOカスタムアクションを実行する必要があり、単に「RemoveFiles」を前にして、管理者として実行を確認するために、「はを延期」など。ここで、次のプロパティを示すからダイアログを防ぐために
を使用することができます。私の理解で
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable" />
彼らはまだ使用されなければならない、それはまだRemoveFiles中にバックFilesInUseダイアログに分類されます当時。
- 1. チャンネルを閉じるか、RandomAccessFileを閉じる必要がありますか
- 2. パンダは接続を閉じる必要がありますか?
- 3. JavaでInputStreamを閉じる必要はありますか?
- 4. jQuery:divsは必要ありませんが、これは必要ありません。
- 5. アプリケーションは全く中断する必要はありません
- 6. 閉じ括弧がありません
- 7. ReliableSqlConnectionからSQLConnectionを閉じる必要がありますか?
- 8. std :: fstreamを閉じる必要がありますか?
- 9. いつエンティティマネージャを閉じる必要がありますか?
- 10. WriteStreamを閉じる必要がありますか?
- 11. データベース接続を閉じる必要がありますか?
- 12. Talendで接続を閉じる必要がありますか?
- 13. チュートリアルNotepadv3でデータベースを閉じる必要がありますか?
- 14. FileInputStreamを閉じる必要がありますか?
- 15. WebInvokeのストリームメソッドを閉じる必要があります
- 16. ロガーのハンドラを閉じる必要があります
- 17. AndroidのAssetFileDescriptorを閉じる必要があります
- 18. file_get_contentsを閉じる必要がありますか?
- 19. JULのFileHandlerを閉じる必要がありますか?
- 20. pymongoセッションを閉じる必要がありますか?
- 21. エンタープライズライブラリ4.1でDbCommandを閉じる必要がありますか?
- 22. json.loadでファイルを閉じる必要がありますか?
- 23. ローカルホストでjdbc接続を閉じる必要があります
- 24. ジャンゴ:LookupErrorが:アプリケーションはモデルの必要はありません 『』モデル
- 25. using節が使用されている場合、DbConnectionを閉じる必要はありませんか?
- 26. BeautifulSoup lxmlパーサータグを閉じるべきではありません
- 27. AndroidはSystem.exit()で閉じることはありません
- 28. MFMailComposeViewControllerはキャンセルボタンで閉じることはありません
- 29. Angular2:moduleIdは必要ありません?
- 30. は、Excelワークブックのウィンドウが閉じるタイミングを知る必要があります
「アンインストール」のカスタムアクションがありますが、アプリケーションの実行中にプロンプトが表示された後に実行されます...どのように置くべきですか? – Marin
InstallValidateの前に、たとえばCostFinalizeの後に移動する必要があります。アンインストール中にのみREMOVE = "ALL"条件が使用されていることを確認してください。 –