2009-11-20 1 views
0

Кто-нибудь из когда-либо писал свой собственный установщик программного обеспечения в .Net, который имеет возможность «пикапа при последней неудаче»?Утилита Smart Software Installer - возобновление последнего отказа

например. Скажем, установка копирует кучу файлов, регистрирует некоторые библиотеки DLL, настраивает/управляет базой данных (MS SQL) и настраивает веб-сайт, управляемый данными (IIS), который использует указанную базу данных.

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

Я мог бы написать свой собственный файл журнала XML, который установщик может найти и управлять процессом, но вместо того, чтобы изобретать колесо, я задаюсь вопросом, существует ли установленная модель & практика или стандартный для этой отрасли способ ?

Я искал в Интернете «обновление программного обеспечения» и, конечно же, я получаю всевозможные советы по написанию резюме. Есть ли более топически-точные ключевые слова, которые могут предложить любой человек?

Спасибо, TimD

ответ

0

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

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

Так что для чего-то вроде настройки или управления базой данных SQL Server я бы хотел, чтобы операторы базы данных выполнялись в транзакции, которая затем может быть отброшена. Вероятно, было бы разумно взять резервную копию базы данных, в зависимости от степени изменений, но вам, возможно, не придется выпекать это в приложении. Мне нравится, как у инструментов Red Gate есть шаг для создания резервной копии, встроенной в процесс синхронизации данных, поэтому он сохраняет меня в безопасности и все еще сохраняет простой и обтекаемый процесс.

Вот мои рассуждения. Если я запустил установку и назову ее «MySite», и это приведет к созданию базы данных и виртуального каталога IIS под названием MySite, и эта установка завершится неудачно, по вашим соображениям, каталог DB и IIS будет оставлен висящим. Теперь, если я администратор, я не хочу предполагать, что ваш установщик будет чисто разбираться с существующими частями, поэтому я делаю следующую установку MySite2 и вхожу и пытаюсь вручную очистить части MySite.

+0

Благодарим за отзыв. Причина: Клиент хочет, чтобы он был построен таким образом. Цель: 1 обеспечить более подробное управление исключениями и протоколирование, чтобы облегчить устранение неполадок. 2 Обеспечьте механизм, чтобы выбрать, где была остановлена ​​последняя попытка установки. – 2009-11-20 17:56:40

Смежные вопросы