Служба Windows не появляется в списке служб после установки
Я создал службу Windows в С#, используя Visual Studio 2008
Я в значительной степени следовал этому:
http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx
Я создал проект установки, как указано в статье, и запустил его...
он устанавливает мою службу в c:\program files\product и т.д.... однако она не появляется в списке сервисов.
Что мне не хватает?
Ответы
Ответ 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) в качестве службы и гарантирует, что ваш сервис всегда работает и работает.
Чтобы использовать этот инструмент:
Затем проверьте список служб, он должен быть там, вверх и запущен.
Ответ 5
Следуйте этим инструкциям, они работали на меня. Для установки конкретно эта часть находится в нижней части статьи.
MSDN: Пошаговое руководство: создание службы Windows
Ответ 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-> проверить название услуги