8

私の統合テストの 1 つで、プログラムをアンインストールしてからインストールする 2 つのスレッドがありますが、順番に実行するとエラーが発生しますFailed to grab execution mutex. System error 258.

これを回避するには、アンインストール後にスリープする必要があります。msiexec プロセスが実行されているかどうかを確認しようとしましたが、一貫して 2 ~ 3 あったため、適切な指標ではありません。msiexec 実行ミューテックスが利用可能かどうかを確認する方法はありますか?

4

1 に答える 1

12
    bool msiIsRunning = false;
    try
    {
        using(var mutex = Mutex.OpenExisting(@"Global\_MSIExecute"))
        {
            msiIsRunning = true;
        }
    }
    catch (Exception)
    {
       // Mutex not found; MSI isn't running
    }
于 2012-04-13T19:11:40.693 に答える