Каковы общие рекомендации по развертыванию и настройке приложений в .NET? - PullRequest
1 голос
/ 05 октября 2010

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

У меня есть приложение .NET WPF, написанное для выполнения производственных функциональных тестов. В настоящее время это программное обеспечение развертывается путем копирования исполняемого файла и его зависимостей в целевую систему. Подчиненные системы связи устанавливаются аналогично, но для регистрации службы Windows WCF необходимо использовать installutil. Все это делается вручную. Кроме того, файлы конфигурации считываются из пользовательских источников данных XML, которые являются локальными для папки приложения. App.config не используется.

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

Мои вопросы следующие:

  1. Что следует использовать для настройки и развертывания? Мастер установки и развертывания? Одноразовое развертывание?
  2. Как мне автоматизировать установку службы Windows? Лучший способ указать пользовательское имя пользователя / пароль для указанной службы?
  3. Что нужно сделать с настройкой, если изменяемое хранилище папок приложения считается вредным, как мне поступить? Изолированное хранилище приложений?

Ссылки на статьи для любого из вышеперечисленных были бы идеальными.

Ответы [ 4 ]

3 голосов
/ 06 октября 2010

Я не могу ответить на все ваши вопросы, но хотя бы помочь решить часть проблемы, с которой у меня есть опыт.

Я нашел в сообщении на форуме, как в основном интегрировать InstallUtilв вашей программе, в основном делайте то, что она делает для вас, чтобы установить службу, так как все это встроено в .net.Итак, то, что сделал оригинальный постер форума, и я скопировал себя в одну из моих базовых библиотек, в основном, если я хочу создать службу, я просто создаю консольное приложение, которое расширяет ServiceBase, переопределяет OnStart / OnStop и имеет все моиСервисный код.Это здорово, потому что это позволяет мне отлаживать прямо из Visual Studio, а затем установка в качестве службы просто означает запуск consoleapp.exe --install, и он будет проходить через все, что нужно сделать для установки службы.

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

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

Так каквы упомянули WCF, хотя я бы включил эту ссылку о выполнении WCF из службы Windows

3 голосов
/ 11 октября 2010

(1) Что следует использовать для настройки и развертывания?Мастер установки и развертывания?Развертывание по щелчку один раз?

Если вы действительно хотите минимизировать риск любых проблем развертывания из-за человеческих ошибок, я бы использовал WIX (http://wix.sourceforge.net/) для создания отдельных установщиков msi как для клиентского приложения WFP, так и для службы Windows. WIX может быть довольно болезненным время от времени, но почти все, что угодно с точки зрения развертывания, может быть достигнуто. Существует специальный проект WIX visual studio, доступный после того, как WIXбыл установлен на вашем ПК.

ИТ-специалисты предприятия, с которыми я работал в прошлом, успешно использовали SMS или Active Directory для установки любых сообщений MSI, которые я создал для них в прошлом, скорее с использованием WIXчем щелчок один раз. Это действительно не имеет ничего общего с WIX.

(2) Как мне автоматизировать установку службы Windows? Лучший способ указать пользовательское имя пользователя /пароль для упомянутой службы?

В Интернете много статей, объясняющих, как установить Windows Service, использующий WIX, такой как этот - Установка и запуск службы Windows с использованием WiX .Используя WIX, вы можете установить пользовательские параметры имени пользователя и пароля, которые будут предоставлены во время установки.Эти параметры можно установить с помощью файла MST или с помощью командной строки с помощью команды msiexec.exe .

(3) Что следует делатьЧто делать с настройкой, если хранилище изменяемых папок приложения считается вредным, как мне поступить?Изолированное хранилище приложений?

При использовании WIX изменяемые файлы конфигурации могут уйти в прошлое, поскольку файлы настроек xml для различных сред, включая производственные, могут находиться в отдельных файлах MST, контролируемых только системными администраторами,Добавлена ​​защита паролей и тому подобного, которые хранятся в безопасных хранилищах, защищенных ключами, их можно добавить через командную строку, как описано в предыдущем ответе.

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

1 голос
/ 05 октября 2010

Да, 1, проект установки и развертывания, просто peasy.Как настроить проект установки для установки службы с помощью настраиваемого действия, подробно описано в пошаговом руководстве «Создание приложения службы» .

0 голосов
/ 11 октября 2010

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

Для приложения WPF я на самом деле использую ClickOnce поверх общих ресурсов Windows. Его легко настроить, и он обрабатывает обновления автоматически.

Было бы замечательно использовать ClickOnce для части обслуживания Windows, но мне это не удалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...