Установка сервиса Visual Studio 2012 без проекта установщика

24:06:2013 Рі.

Как известно, последней версией Visual Studio, которая поддерживала проекты установщиков была 2010. Благодаря им было достаточно просто создавать установщики для своих приложений. В частности, проекты установщиков часто использовались при распространении проектов служб.

В Visual Studio 2012 эти проекты пропали. В этой заметкой я расскажу о том, как сделать замену этим установщикам. На самом деле, если провести сравнение, то процесс публикации сервиса Windows после его написания стал еще проще.

Для начала, пишем наш сервис. Когда он готов и остается только добавить установщик службы в Visual Studio 2012 делаем следующее:

На главной странице нашей службы, где нам предлагают переместить элементы с панели элементов вызываем контекстное меню и жмем на добавление нашего установщика. У нас в проекте появится ProjectInstaller, который, в отличии от предыдущих версий будет выполнен просто в виде двух классов. По-большому счету мы можем эти файлы даже не изменять, но опишу здесь несколько опций, которые было бы полезно добавить (serviceProcessInstaller1 замените на ваше имя инсталлера):

this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
this.serviceInstaller1.ServiceName =
"Название сервиса";
this.serviceInstaller1.Description = "Описание, которое будет доступно в диспетчере сервисов";
this.serviceInstaller1.DisplayName = "Отображаемое имя в диспетчере сервисов";
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;

Соответственно, мы описали, что сервис выполняется от имени локальной системы, имеет автоматический тип запуска, дали описание. В случае, если нужно, чтобы наш сервис Windows запускался от имени определеннгого пользователя - измените свойства Username и Password.

По большому счету, процесс добавления инсталлера можно считать завершенным. Наш исполняемый файл, созданный в Visual Studio 2012 теперь можно установить как службу, используя утилиту InstallUtil. Но для упрощения задачи можно создать 2 bat файла:

Файл установщика службы:



@ECHO OFF

echo Setting up installation process
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil /i путь_к нашему_исполняемому_файлу_сервиса
echo Installatuon complete.
pause


Файл для удаления службы Windows:



@ECHO OFF

echo Starting deinstallation process
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil /u путь_к нашему_исполняемому_файлу_сервиса
echo Proccess completed.
pause


Эти файлы можно добавить в проект Visual Studio 2012 и задать параметр копирования в выходной каталог всегда при построении. Таким образом, всегда при построении у нас будут публиковаться два batch файла, которые можно запустить и получить установленную или удаленную службу. Bat-файлы нужно запускать от имени администратора, иначе по понятным причинам установка не будет успешной.

 

Добавить комментарий



Обновить

« Решение - DataGridView C# не работает вертикальный ScrollBar (Vertical)   Решение - запустить браузер по умолчанию с адресом в C# »
← Раньше

Фотоальбом

fotic.jpg

Облако Тегов