установить / удалить службы Windows во время разработки - PullRequest
2 голосов
/ 21 февраля 2011

Я хотел бы знать, есть ли более простой способ установки или удаления служб Windows в среде разработки или тестирования без создания пакетов установки? У меня иногда возникают проблемы с удалением пакетов Visual Studio (даже после остановки службы и закрытия консоли управления службами перед удалением, что вынуждает меня перезагрузить компьютер). эту проблему можно решить с помощью таких инструментов, как InstallShield или WIX, для создания пакетов установки, но во время разработки будет проще, если я смогу установить службу (вместе со всеми зависимыми файлами) в среде разработки или тестирования без создания пакета установки.

Ответы [ 4 ]

2 голосов
/ 21 февраля 2011

Используйте installutil , который является частью .net framework.Теперь вам все еще нужно скопировать каталог bin на нужный компьютер и зарегистрировать любые COM-объекты, если вы их используете.

1 голос
/ 21 февраля 2011

Я считаю, что команда SC.EXE проста в использовании во время разработки. Вставьте его в файл NAnt / BuildBuild / Perl / BAT и мгновенную легкую автоматизацию.

1 голос
/ 21 февраля 2011

Если помните правильно, (в данный момент нет доступа к моей машине разработки). Остановите службу - и замените exes и dll) перезапустите службу. Вы можете написать это. Вам нужно будет выполнить первоначальную установку или использовать installutil.exe

Я обнаружил, что все это намного проще, чем установка и удаление.

0 голосов
/ 22 апреля 2016

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

Проблема связана с изменением установщика, включенного в Visual Studio. Я думаю, что изменение произошло между VS2005 и VS2008. Независимо от того, чтобы после изменения, чтобы установщик обновлений работал должным образом, не удаляя предыдущий продукт, было рекомендовано, чтобы Службы были установлены с помощью Настраиваемых действий на этапе установки, фиксации и отката, но не на этапе удаления. Я полагаю, что это связано с тем, что изменение вызвало действие удаления после установки новой версии, удаление службы после обновления. Условие "Not PREVIOUSVERSIONSINSTALLED" помещено в 3 пользовательских действия, и проверка предыдущих версий должна быть ИСТИНА. Это приводит, по сути, к тому же результату, что и копирование файлов поверх старых (но также сохраняет любые другие действия по установке, такие как регистрация объектов и т. Д.)

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

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