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

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

Я создал проект установки, как указано в статье, и запустил его ... он устанавливает мой сервис C:\Program Files\Product etc...., но затем он не появляется в списке сервисов ...

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

Трудно угадать без дополнительной информации. Если вы сделали все, как описано в статье, и установили сервис, он должен быть доступен.
Foxfire 13.10.2009 14:00:38
Вы пытались обновить консоль служб? Список в консоли не обновляется автоматически. Если при установке службы у вас уже была открыта консоль, попробуйте обновить ее (или перезапустить).
Matt Davis 13.10.2009 14:21:26
Слишком поздно, но стоит упомянуть: добавьте custom actionв настройку и убедитесь, что класс установщикаpublic
Sarvesh Mishra 6.07.2018 05:40:41
9 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

2. В редакторе настраиваемых действий щелкните правой кнопкой мыши узел «Настраиваемые действия» и выберите «Добавить настраиваемое действие». Откроется диалоговое окно «Выбрать элемент в проекте».

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

4. Создайте проект установки.

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


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

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

107
22.01.2014 17:01:43
Есть ли способ запустить службу как часть установки? Я знаю, что вы можете настроить StartType на автоматический, но это только запускает службу после перезапуска.
Taylor Leese 24.02.2010 01:44:42
Большое спасибо @Nate. Когда я выполнял твои инструкции, я понял, что это то, что я должен был сделать в прошлый раз.
m.edmondson 1.11.2011 10:11:33
Пятно на! Спасибо, это помогло мне
hakuna 17.10.2017 18:14:15

Следуйте этим инструкциям, они работали для меня. Специально для настройки эта часть находится внизу статьи.

MSDN: Пошаговое руководство. Создание службы Windows

1
13.10.2009 14:00:56
эта ссылка устарела
andrepaulo 7.01.2019 15:42:58

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

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

6
11.03.2010 20:12:20
О, чувак, спасибо. Я думаю, что это просто безумие! Я стал дерзким и подумал: «Мех, это просто установщик - зачем пытаться сделать обертку класса публичной?» и удалил его, даже не задумываясь - бум, проблема возникла.
Alexandru 9.03.2014 06:25:48

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

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

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

serviceInstaller.Parent = this;

а также

serviceProcessInstaller.Parent = this;
6
20.03.2013 18:29:09
Спасибо! этот мне очень помог
amaters 20.06.2012 20:09:57

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

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

  1. Скачать отсюда

  2. И следуйте инструкциям здесь

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

3
30.01.2014 21:41:12

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

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

Dunn.

0
12.06.2015 15:06:37

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

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

Следующее - из учебника по настройке пользовательских действий (случай имеет значение):

  • Установите, задайте для свойства Condition следующее: «НЕ (установлено или предварительно установлено)»
  • Удалите, установите для свойства Condition значение «NOT UPGRADINGPRODUCTCODE».
  • Фиксация: установите для поля "Данные пользовательских действий" значение: / OldProductCode = "[PREVIOUSVERSIONSINSTALLED]"

Наконец, в проекте WinService убедитесь, что для раскрывающегося списка «Удалить предыдущие версии» установлено значение true.

ура

0
28.09.2015 13:32:18

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

0
28.08.2017 18:55:52

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

0
5.10.2019 06:53:56