Стратегии реализации режима восстановления - PullRequest
0 голосов
/ 14 июля 2011

У меня есть приложение Windows, которое в случае сбоя, я хотел бы по умолчанию использовать «режим восстановления», при первом запуске после сбоя.

Я в порядке, отмечая ошибку иразные вещи, которые пользователь может сделать для восстановления, это фактический запуск утилиты режима восстановления, которая вызывает у меня головную боль.У меня была пара идей, но я надеялся, что кто-то другой мог бы найти лучший метод.

1) Когда основное приложение загружает первое, что оно делает, если проверяет предыдущую ошибку, а затем запускаетутилита режима восстановления.

Проблема в том, что если с приложением что-то не так, что, скорее всего, оно вообще не запустится.

2) Вместо основногоприложение заставляет пользователя запускать утилиту, которая проверяет предыдущую ошибку, затем либо запускает основное приложение, либо переходит в режим восстановления.

Это решает проблему с первой идеей, однако целевые машины оченьзаблокирован и могут возникнуть проблемы с развертыванием.

Существуют ли другие стратегии для реализации режима восстановления?

Спасибо

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

Мы решили некоторую похожую ситуацию следующим образом:

  • сделать "утилиту режима восстановления" той, которая всегда запускается пользователем
  • , "утилиту режима восстановления" проверить,любое восстановление для выполнения (и если это так)
  • , когда восстановление не требуется или восстановление успешно завершено, утилита запускает реальное приложение

. С помощью .NET вы можете даже поставитьи в один EXE-файл ... например, с помощью ILMerge (бесплатная утилита) или путем встраивания реального приложения в качестве "встраиваемого ресурса" или с помощью какого-либо коммерческого инструмента ...

Таким образом, для пользователя нет разницы... и встроенный EXE может быть запущен из памяти (не нужно извлекать его в файловую систему), поэтому для пользователя это не имеет никакого значения, пока восстановление действительно не требуется ...

ЕСЛИ нужноиз-за некоторых советов о том, как встроить и / или запустить второй EXE из памяти, дайте мне знать - сейчас у меня нет ссылок, но я могу их найти.

0 голосов
/ 15 сентября 2011

Дело в том, что если приложение дает сбой, оно все еще способно записать, что оно вышло из строя и почему оно не удалось?

Таким образом, я бы записал событие запуска приложения при запуске и событие закрытия приложения при завершении работы. Тогда приложение может автоматически перейти в режим восстановления, если оно не обнаружит закрытое событие при запуске.

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

...