2016-08-30 17 views
0

ものの前にインストール/アンインストールプロセスを開いたかどうか確認することができます私は、セットアップは、Visual Studioのインストーラに&カスタムアクションを使用して作成したC#VSで2010年はどのように我々は、アプリケーションがカスタムアクション

をデスクトップアプリケーションを開発しました。

アプリケーションを確認するにはどうすればアップグレードされたバージョンをインストールしようとしていますか/アンインストールアプリケーションユーザーはカスタムアクションで通知メッセージを受け取りますか?それはそうあなたがassymbliesのプロパティ(バージョン番号を除く)と同じに保つ場合

/// <summary> 
    /// Prüft ob die Anwendung bereits ausgeführt wird. 
    /// </summary> 
    /// <returns> 
    /// <c>true</c> wenn die Anwendung bereits läuft, 
    /// anderenfalls <c>false</c>. 
    /// </returns> 
    /// <remarks>n/a</remarks> 
    private static bool AlreadyRunning() 
    { 
     Process current = Process.GetCurrentProcess(); 
     Process[] processes = Process.GetProcessesByName(
           current.ProcessName); 
     foreach (Process process in processes) 
     { 
      if (process.Id != current.Id) 
      { 
       if (Assembly.GetExecutingAssembly().Location 
        .Replace("/", "\\") == current.MainModule.FileName) 
       { 
        return true; 
       } 
      } 
     } 
     return false; 
    } 


にのみ、行うことができます。事前に

おかげで

+0

[Windowsアプリケーションが実行されているかどうかをチェックする](0120-336-501) – Sinatr

+0

チェックの重複を確認する方法C#で重複インスタンス? –

+0

これは、アプリケーション自体からはチェックしていないので、リンクされた質問の代理ではありませんが、インストーラからです。 –

答えて

0

Propablyあなたはこのような何かを行うことができますシステムのための他のアプリケーションであり、名前でプロセスを検索することしかできません。

1

Visual Studioセットアップでこれを行うことは何もサポートされていません。これは、すべてのVisual Studioのインストールカスタムアクションは、すべてのファイルがインストールされた後、インストールの最後に実行されるため、インストールの前に何かをチェックするのには役に立たないからです。

実際、多くのインストーラは必要ないため、これをサポートしていません。 Windowsは、使用中のファイル(およびロードされたDLL)が置き換えられるかどうかをチェックし、ユーザに何をしたいかを尋ねるFiles-In-Useダイアログボックスを表示します。アプリかどうか(再起動が必要な場合があります)。したがって、ユーザーは何をすべきかの選択肢があり、アプリケーションをシャットダウンする必要はありません。したがって、使用中のファイルがあれば、何もする必要はありません。問題がある場合、ユーザーはすでに使用中のファイルに関するダイアログを表示します。

より完全なアプリケーションは、状態を保存し、自動的にシャットダウンし、コマンドラインで状態を復元することを意味するコマンドラインを使用してWindowsを再起動するため、ユーザーはデータを失いません。

+0

あなたの応答に感謝 –

関連する問題