C # Updater для приложения Windows - PullRequest
0 голосов
/ 22 июля 2010

Я разработал приложение для обновления моего приложения для Windows.Это разные проекты в рамках одного решения, и они работают как разные процессы.когда я запускаю приложение, оно проверяет наличие обновлений при запуске (как другой процесс).когда я нажимаю кнопку обновления, он пытается загрузить файлы в папку установки.(Я использую .exe в папке отладки, я не создаю установочный файл) Все работает нормально, но основное приложение (app.exe) не может быть перезаписано, поскольку оно используется процессом обновления.но в процессе обновления я убиваю app.exe и app.exe тоже из диспетчера задач.Я ничего не мог найти, как main app.exe используется обновлением.Кто-нибудь есть идеи, как обновление использует основное приложение?как я могу посмотреть это?в какой строке он начинает использовать другое приложение?

Ответы [ 4 ]

1 голос
/ 22 июля 2010
  1. Переименовать app.exe
  2. Вставить новый app.exe
  3. Закрыть запущенный, старый app.exe
  4. Запустить новый app.exe
  5. Проверьте переименованный app.exe (во вновь запущенном app.exe)
  6. Удалите старый переименованный app.exe
0 голосов
/ 22 июля 2010

Вам нужно изобрести свой собственный? Существуют решения, которые вы можете использовать, которые уже делают это. Microsoft ClickOnce поддерживает это, если оно соответствует вашей модели развертывания.

Быстрый поиск в Google также обнаруживает несколько вещей:

0 голосов
/ 22 июля 2010

Чтобы узнать, кто участвует в вашем процессе, вам нужно запустить ProcessExplorer .В строке меню есть несколько шпионских очков.Просто нажмите на него и посмотрите, какой процесс содержит дескриптор вашего приложения.

0 голосов
/ 22 июля 2010

Если приложение обновления имеет ссылку на основной файл приложения, оно будет заблокировано. Если это так, можете ли вы удалить ссылку на основное приложение из проекта обновления приложения? Это может потребовать перемещения некоторого кода непосредственно в исходный код программы обновления.

...