Varun_nayak Ответов: 2

Служба Windows не отображается в списке служб после установки с помощью installshield LE из VS 2013


I've created a windows service in c#, using Visual Studio 2013 I pretty much followed this:


http://www.c-sharpcorner.com/UploadFile/cb88b2/simple-steps-to-create-setup-file-using-install-shield-le-fr/


I created a setup project, as instructed in the article, and ran it. It installs my service to c:\program files(*86)\Company Name\My product Name etc., however, it does not then appear in the services list.

can you please help me What am i missing?


Что я уже пробовал:

Я уже пытался установить эту службу вручную с помощью командной строки visual studio, и она работает нормально. Но я не могу установить его с помощью setup project, который я создал с помощью Installshiled light edition, который VS2013 предоставил встроенный.

2 Ответов

Рейтинг:
2

Member 13889055

Откройте окно service class в режиме конструктора и просто установите свойство Account ServiceProcessInstaller в локальную систему от пользователя . Если вы не добавили ServiceProcessInstaller, пожалуйста, щелкните правой кнопкой мыши на странице дизайна сервиса и выберите пункт меню AddInstaller.


Рейтинг:
1

Matt Comb

Привет Варун, это не совсем ответ на ваш вопрос, но вам может быть интересно узнать, что вы можете установить/удалить службу windows довольно просто, используя следующие команды:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe" C:\Program Files\Service\Service.exe"

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe" /у "C:\Program Files\Service\Service.exe"

где v4.0.30319-это версия .Сеть, на которую вы ориентируетесь для этой службы.

Многие люди отказались от фреймворков установщика для служб windows, потому что они тяжелы и не так легко автоматизируются. Это, конечно, зависит от вашего программного обеспечения и от того, как/кем оно устанавливается.


Varun_nayak

извините, но я отвергаю это как решение.

проблема в том , что это работает только на моей машине (которая имеет visual studio), а не на клиентской машине (которая не имеет visual studio или командной строки visual studio)

Matt Comb

Привет, Варун, это неправильно. Он работает на всех машинах, которые есть .Net installed вам просто нужно либо установить правильный .Чистая версия, или найти, какая версия .Установлена сетка.

Matt Comb

Путь выше был для конкретной версии .Net, как я описал: "где v4.0.30319-это версия .Сеть, на которую вы ориентируетесь для этой службы."

Создаваемая служба должна быть ориентирована на конкретную версию .Net когда он строится, вы должны использовать эту версию в пути к файлу, а также учитывать .Net может быть 32-и 64-битной версией.

Varun_nayak

Мой таргетинг на приложения .Чистый фреймворк 4.5,
Обе машины имеют .NET4.5 или выше, обе являются 64-битными машинами.
Даже "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\installutil.exe" этот путь доступен в обеих машинах.

PS: обычно у меня есть практика установки служб с помощью командной строки Visual studio с помощью команды installutil, но для этого машина должна иметь visual studio и командную строку visual studio.

Я получаю ниже ошибки
Запуск транзакционной установки.

Начало этапа установки установки.
См. содержимое файла журнала для получения следующих сведений: C:\Program файлы (x86)\Emerson\мой продукт Name\LicenseServices.exe прогресс ассамблеи.
Файл находится по адресу C:\Program файлы (x86)\Emerson\My Product Name\LicenseServices.Установочный журнал.

На этапе установки произошло исключение.
Система.UnauthorizedAccessException: доступ к пути 'C:\Program файлы (x86)\Emerson\My Product Name\LicenseServices.InstallState' отказано.

Начинается фаза отката установки.
См. содержимое файла журнала для получения следующих сведений: C:\Program файлы (x86)\Emerson\мой продукт Name\LicenseServices.exe прогресс ассамблеи.
Файл находится по адресу C:\Program файлы (x86)\Emerson\My Product Name\LicenseServices.Установочный журнал.
Исключение произошло во время фазы отката системы.Конфигурация.Устанавливать.Установщик AssemblyInstaller.
System.IO.FileNotFoundException: не удалось найти файл 'C:\Program файлы (x86)\Emerson\My Product Name\LicenseServices.InstallState'.
Исключение произошло на этапе отката установки. Это исключение будет проигнорировано, и откат будет продолжен. Однако машина может не полностью вернуться в исходное состояние после завершения отката.

Фаза отката завершилась успешно.

Транзакционная установка завершена.

Matt Comb

Похоже, вам придется повысить уровень разрешений... пользователь, запустивший этот скрипт, должен запустить его от имени администратора

Matt Comb

PS могу ли я вернуть свои 25 очков :)

Varun_nayak

я попробовал также с пользователем admin. это не работает

Matt Comb

Можете ли вы указать, что именно не работает, если у вас есть права администратора и вы можете найти папку .net, вы сможете зарегистрировать службу. Не знаю, с чем вы здесь боретесь

Varun_nayak

когда я пытаюсь запустить эту команду на клиентской машине, я получаю ошибку, о которой упоминал выше (пожалуйста, проверьте мой ответ 29 марта)

Varun_nayak

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