2016-08-30 8 views
0

Я разработал настольные приложения в C# VS 2010.Как мы можем проверить приложение открыто или нет, прежде чем установки/удаления процесса, хотя пользовательские действия

У меня есть установка создана с помощью Visual Studio монтажником & пользовательских действий.

Как мы можем проверить, что приложение открыто для пользователя, пытающегося установить обновленную версию/удаление приложения, пользователь получает уведомление с помощью пользовательских действий?

Заранее спасибо

+0

Возможные дубликаты [Проверка наличия приложения Windows] (http://stackoverflow.com/questions/4722198/checking-if-a-windows-application-is-running) – Sinatr

+0

как мы можем проверить дубликат проверки дублировать экземпляр в C#? –

+0

Это не дубликат связанного вопроса, так как он не проверяет само приложение, а от установщика. –

ответ

0

Propably вы могли бы сделать что-то вроде этого:

/// <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; 
    } 


Это может быть сделано только, если вы держите assymblies свойства и то же (кроме номера версии) в противном случае он было бы другим приложением для системы, и вы могли бы только искать процесс по имени.

1

В настройках Visual Studio поддержки нет. Это связано с тем, что все пользовательские действия Visual Studio запускаются почти в конце установки после того, как все файлы установлены, поэтому не нужно проверять что-либо «до» установки.

На самом деле многие установщики не имеют поддержки для этого, потому что это не нужно. Windows проверит, будут ли какие-либо используемые файлы (и их загруженные Dll) заменены, и покажет пользователю диалоговое окно «Файлы в использовании», спрашивающее, что пользователь хочет сделать, а именно: закрыть приложения или нет (что может потребовать перезагрузки). Поэтому у пользователя есть выбор, что делать, и не требуется закрывать приложение. Поэтому нет никакой необходимости вообще что-либо делать с возможной ситуацией с файлами. При возникновении проблемы пользователь уже получит диалог об используемых файлах.

Более тщательные приложения интегрируются с Restart Manager таким образом, что они сохраняют свое состояние, автоматически закрываются, и Windows перезапускает их после обновления с помощью командной строки, что означает, что они восстанавливают состояние, пользователь не теряет данных и продолжает работать.

+0

благодаря вашему отзыву –