0

実行中のアプリケーションのアンインストールを停止したい。ビジュアルスタジオのセットアップと展開でやりたい。以下のコードをインストーラー クラスに追加し、アクション リストで呼び出しましたが、機能しません。

 public static bool ApplicationIsBusy()
    {
        Process application = null;
        foreach (var process in Process.GetProcesses())
        {
            if (!process.ProcessName.Contains("applicationname")) continue;
            application = process;
            break;
        }

        if (application != null && application.Responding)
        {
            return true;
        }

        else
        {
            return false;
        }

    }
    public override void Uninstall(IDictionary savedState)
    {

      base. Uninstall(savedState);
        if (ApplicationIsBusy()==true)
           throw new ApplicationException("Prevent uninstall while application busy.");
    }

  protected override void OnBeforeUninstall(IDictionary savedState)
    {
        base.OnBeforeUninstall(savedState);

        if (ApplicationIsBusy()==true)
            throw new ApplicationException("Prevent uninstall while application busy.");
    }
4

1 に答える 1

1

これを試して、

Method to check if application is running

private bool ApplicationIsBusy()
{
   bool isApplicationRunning = false;

   Process[] applicationProcess = Process.GetProcessesByName("applicationname");
   if (null != applicationProcess && applicationProcess.Length > 0)
   {
       isApplicationRunning = true;
   }

   return isApplicationRunning;
}

Uninstall method implementation

public override void Uninstall(IDictionary savedState)
{
  if (ApplicationIsBusy())
      throw new Exception("Prevent uninstall while application busy.");

  base. Uninstall(savedState);
}
于 2013-10-19T12:02:17.877 に答える