Оригинальный вопрос:
Название этого вопроса может быть немного неуклюжим, но вот ситуация:
На моем сервере развернут веб-проект .NET. Это все еще в бета-версии, так что много релизов и переизданий происходит.
Я также написал исполняемый файл C # в том же решении VS (назовите его «admin.exe»), который выполняется в фоновом режиме на сервере, периодически выполняя определенные проверки целостности бизнес-правил и делая соответствующие вставки в таблицу предупреждений в DB.
Вопрос: как лучше всего развернуть это приложение, чтобы оно обновлялось всякий раз, когда я делаю новый выпуск? Он должен работать все время между выпусками, поэтому в идеале я бы хотел какую-то настройку, при которой процесс shutdown-deploy-startup включает минимально возможное количество шагов.
Спасибо!
Редактировать - Баунти начался
Ответы, данные до сих пор, были полезными и интересными, но не дали мне ясного, лаконичного и элегантного решения. Пожалуйста, не думайте, что я обладаю обширными знаниями о проектах развертывания, потому что я не знаю. Щедрость идет к человеку, который может предоставить решение, которое делает следующее:
- Публикация последней версии веб-сайта;
- Завершить работу всех экземпляров admin.exe, работающих на сервере;
- Обновление admin.exe;
- Запустить admin.exe;
- Все вышеперечисленное следует выполнять предпочтительно за один шаг или как можно меньше этапов, поскольку это будет повторяться в течение всего срока службы продукта; и
- Все вышеперечисленное должно выполняться предпочтительно без необходимости установки какого-либо программного обеспечения сторонних производителей.
Спасибо за помощь!
Незначительное редактирование - уточнение
Я думаю, что многие предлагаемые решения переоценили сложность проблемы, поэтому позвольте мне уточнить: все, что должно быть развернуто, должно быть развернуто только на одном компьютере, который также К счастью, Visual Studio доступна со всем исходным кодом. Мне нужно только (1) опубликовать веб-сайт в веб-папке и (2) закрыть, переустановить и перезапустить admin.exe на том же сервере. Разве нет простого способа сделать это за один шаг? Можно ли это сделать с помощью проекта VS Deployment?