Рейтинг:
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
если вы дадите мне свой почтовый идентификатор , я могу отправить вам исходный код служб, а также настройки.