Как установить службу Windows, разработанную в .NET 3.5? - PullRequest
9 голосов
/ 09 октября 2009

Я разработал службу Windows с использованием Visual Studio 2008. Я хочу установить эту службу на компьютере, где Visual Studio не установлена, но установлена ​​.NET 3.5.

Обычно InstallUtil.exe должен использоваться для установки службы Windows, но утилита InstallUtil.exe недоступна в .NET 3.5. Когда я попытался установить эту службу с помощью .NET 2.0, служба отображается в списке служб, но при запуске службы появляется ошибка 1053 службы Windows. Как мы можем избежать этой проблемы и успешно установить сервис?

Ответы [ 4 ]

8 голосов
/ 09 октября 2009

Это на самом деле очень просто, так как я сделал это пару дней назад для чего-то, что я сделал.

Итак, в вашем сервисном проекте вы хотите:

  1. В обозревателе решений дважды щелкните файл .cs вашего сервиса. Он должен вызвать экран, который весь серый и говорит о перетаскивании чего-либо из панели инструментов.
  2. Затем щелкните правой кнопкой мыши на серой области и выберите «Добавить установщик». Это добавит файл проекта установщика в ваш проект.
  3. Тогда у вас будет 2 компонента в режиме конструктора ProjectInstaller.cs (serviceProcessInstaller1 и serviceInstaller1). Затем вы должны настроить свойства так, как вам нужно.

Теперь вам нужно сделать проект установки. Лучше всего использовать мастер установки.

  1. Щелкните правой кнопкой мыши свое решение и добавьте новый проект: Добавить> Новый проект> Проекты установки и развертывания> Мастер установки
  2. На втором шаге выберите «Создать установку для приложения Windows».
  3. На третьем шаге выберите «Первичный выход из ...»
  4. Нажмите, чтобы закончить.

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

  1. Щелкните правой кнопкой мыши проект установки в обозревателе решений.
  2. Выберите Вид> Редактор> Пользовательские действия.
  3. Щелкните правой кнопкой мыши действие «Установить» в дереве пользовательских действий и выберите «Добавить пользовательское действие ...»
  4. В диалоговом окне «Выбрать элемент в проекте» выберите «Папка приложения» и нажмите «ОК».
  5. Нажмите OK, чтобы выбрать опцию «Первичный выход из ...». Новый узел должен быть создан.
  6. Повторите шаги 4 - 5 для фиксации, отката и удаления действий.

Теперь просто соберите ваш установщик, и он выдаст MSI и файл setup.exe. Выберите, какой вы хотите использовать для развертывания службы.

4 голосов
/ 09 октября 2009

Существует Microsoft KB для .Net 2.0 и VS2005. Процедура точно такая же в .Net 3.5 и VS2008.

http://support.microsoft.com/kb/317421

А вот хорошая статья с картинками, чтобы было понятнее. (Иногда КБ не так дружелюбны, как учебники, которые вы можете найти в другом месте.)

http://aspalliance.com/1316_Working_with_Windows_Service_Using_Visual_Studio_2005.3

1 голос
/ 09 октября 2009

Если вы использовали InstallUtil.exe для установки службы Windows, это означает, что вы добавили компонент ProjectInstaller в свою службу. Все, что делает InstallUtil.exe, - это использует отражение, чтобы найти компонент инсталлятора, встроенный в вашу службу, и выполнить для него некоторые методы. Благодаря этому вы можете изменить свою службу Windows для установки и удаления самой себя, то есть вам больше не нужно зависеть от наличия InstallUtil.exe на целевом компьютере . Я успешно использую это в течение нескольких месяцев. Просто следуйте пошаговой инструкции, которую я предоставил здесь . Идея изначально принадлежит Марку Гравеллу и эта запись .

0 голосов
/ 06 декабря 2012

Сообщение:

"Ошибка 1053: служба не отвечает на запуск или управление запрос своевременно. "

обычно является общим ответом на проблему с запуском службы Windows. Что вы должны сделать, это проверить журнал событий, и, скорее всего, вы обнаружите ошибку real , которая мешает запуску службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...