Подтвердить что ты не робот

Служба Windows не появляется в списке служб после установки

Я создал службу Windows в С#, используя Visual Studio 2008 Я в значительной степени следовал этому: http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx

Я создал проект установки, как указано в статье, и запустил его... он устанавливает мою службу в c:\program files\product и т.д.... однако она не появляется в списке сервисов.

Что мне не хватает?

4b9b3361

Ответ 1

Самая важная часть статьи, которую вы связали, находится здесь

Чтобы добавить настраиваемое действие в проект установки

1. В обозревателе решений щелкните правой кнопкой мыши проект установки, выберите "Просмотр", затем   выберите "Пользовательские действия". Обычай   Появится редактор действий.

     

2. В редакторе пользовательских действий щелкните правой кнопкой мыши пользовательские действия node  и выберите "Добавить пользовательское действие".   Выберите элемент в диалоговом окне "Проект"   появляется.

     

3. Дважды щелкните папку приложения в списке, чтобы открыть ее, выберите   первичный вывод из MyNewService   (Active) и нажмите "ОК". Главная   вывод добавляется ко всем четырем узлам   пользовательские действия Установить, зафиксировать,   Откат и удаление.

     

4.Build проект установки.

Если вы пропустите эти шаги, ваш проект установки будет создавать и копировать ваши файлы в правильный каталог; однако они не будут регистрировать ваш двоичный файл как услугу без этих шагов.


Следует также отметить, что это работает для более старых версий Visual Studio, у которых был/был встроенный шаблон проекта установки/развертывания. Новые версии Visual Studio имеют разные проекты установки/развертывания (некоторые из них требуют стороннего программного обеспечения.)

Я бы рекомендовал посмотреть WiX Toolset и здесь проверить WiX Установка служб Windows.

Ответ 2

Я попал в лицо этому, поэтому я помещаю его здесь на всякий случай, когда кто-то еще сталкивается с этим.

Если вы следуете инструкциям в руководствах, но все еще имеете проблемы с установкой, убедитесь, что ваш класс Installer является общедоступным. Внутренний режим не будет работать.

Ответ 3

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

Дважды щелкните по установщику проекта. Дизайнер должен показать установщик служб и установщик процесса. Когда вы нажимаете на и просматриваете свойства, вы должны учитывать атрибут Parent, который должен быть установлен как имя класса установщика Project.

Или, если вы сделаете это в коде, убедитесь, что вы установили:

serviceInstaller.Parent = this;

и

serviceProcessInstaller.Parent = this;

Ответ 4

При установке сервисов я настоятельно рекомендую использовать NSSM, который хорошо работал у меня для всех моих потребностей WinService. Он может устанавливать любой исполняемый файл (даже если .bat,.cmd) в качестве службы и гарантирует, что ваш сервис всегда работает и работает.

Чтобы использовать этот инструмент:

Затем проверьте список служб, он должен быть там, вверх и запущен.

Ответ 6

В Visual Studio 2013 я столкнулся с той же проблемой, используя шаблон InstallShield для приложения-службы. Но он работает как прелесть при использовании шаблона Project Project https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

так что загрузите шаблон Setup Project, закройте свою студию, запустите эту установку и запустите свою Studio, это сработает.

Dunn.

Ответ 7

Вот хороший учебник от tgeek001 от CodeProject.com, который помог мне. Он включает несколько вещей, которые я не видел в сообщениях выше: 1. Код обработчика события, чтобы остановить службу перед ее удалением. 2. Конкретные условия и свойства в коде пользовательских действий для предотвращения сбоев (они исправили ошибку 1001, которую я испытал, следуя инструкциям в принятом ответе выше) 3. Утилита Win Service: "Удалить предыдущую версию", установленную в true

http://www.codeproject.com/Tips/575177/Window-Service-Deployment-using-VS

Ниже приведено руководство по настройке пользовательских действий (вопросы):

  • Установите, установите для свойства Condition следующее: "NOT (Установлено или ПРЕДЫДУЩАЯ НЕИСПРАВНОСТЬ)"
  • Удалите, установите для свойства Condition следующее: "NOT UPGRADINGPRODUCTCODE"
  • Commit: установите поле "Custom Action Data" для:/OldProductCode = "[PREVIOUSVERSIONSINSTALLED]"

Наконец, в проекте WinService убедитесь, что выпадающее меню "Удалить предыдущие версии" равно true.

веселит

Ответ 8

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

Ответ 9

не забудьте проверить имя, которое вы дали вашему сервису, прежде чем искать. (справа click-> properties-> проверить название услуги