检查Windows安装程序互斥可用性

pro*_*ach 6 c# windows-installer

在我的一个集成测试中,我有两个线程卸载然后安装程序,但是当按顺序运行时会产生错误 Failed to grab execution mutex. System error 258.

为了解决这个问题,我必须在卸载后睡觉.我试着检查msiexec进程是否正在运行但是一直有2-3个因此它不是一个好的指标.有没有办法检查msiexec执行互斥锁是否可用?

Chr*_*ter 10

    bool msiIsRunning = false;
    try
    {
        using(var mutex = Mutex.OpenExisting(@"Global\_MSIExecute"))
        {
            msiIsRunning = true;
        }
    }
    catch (Exception)
    {
       // Mutex not found; MSI isn't running
    }
Run Code Online (Sandbox Code Playgroud)