Создание службы с инсталятором в VS2012 C#

15.10.14

База данных - Инструменты администратора БД

Создание службы с инсталятором в VS2012 C#

Создание службы VS2012 C#
Открываем VS2012. Меню Файл -> Создать -> Проект -> Шаблоны -> Visual C# -> Служба Windows.
Вводим имя и имя решения.
рис. 1

Далее в контекстном меню Свойства узла WindowsService1 в диалоговом окне выбираем вкладку Приложение. Для поля Автоматически запускаемый объект из выпадающего списка выбираем значение WindowsService1.Program. Остальное - по желанию.
рис. 2

 

Дважды щелкаем мышью по имени файла Servece1.cs в Обозревателе решений. Выставим свойства - (Name)- Service1, AutoLog - True.
рис. 3

 

Раскрываем узел Service1.cs, щелкаем по Service1. В основном окне проекта видим готовый шаблон сервиса. Класс Service1 содержит конструктор класса, функцию main и функции методов OnStart и OnStop.
рис. 4

 

Построим проект. Для этого жмем F6 или Построение -> Построить решение.
рис. 5

 

При попытке запуска нашего сервиса нажатием кнопки Запуск получаем такое окно:
рис. 6


Для того что бы наш сервис начал работать его надо установить, а для того что бы его установить, сервис должен иметь установщик.
Для добавления установщика опять дважды щелкаем на Servece1.cs и добавляем установщик.
рис. 7


Теперь в нашем проекте есть serviceProcessInstaller1 и serviceInstaller1. В serviceProcessInstaller1 поставим значение Account в LocalSystem. В serviceInstaller1 укажем имя сервиса и поставим StartType — Automatic.
рис. 8

 

рис. 9

 


Не забудьте выполнить Построение -> Построить решение или нажать F6.

Тут, собственно, и начинается самое интересное, из за чего было написано все предыдущее.
Чтобы установить сервис, нужно вызвать утилиту установки и передать параметром путь к нашему сервису.
Для этого можно создать install.bat такого вида:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe "C:\Users\vs2012\Documents\Visual Studio 2012\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe"
pause

После запуска этого файла с правами администратора в апплете Службы можно увидеть наш сервис.
рис. 10

 


В папке откуда запускался install.bat появится лог файл InstallUtil.InstallLog, а в папке проекта файл WindowsService1.InstallLog.
Если вы все сделали правильно, то WindowsService1.InstallLog будет содержать такие строки:
"Устанавливается служба Service1...
Служба Service1 успешно установлена."
В противном случае ищите ошибку в последовательности действий при создании сервиса.
Ну и создадим файл для удаления сервиса UnInstall.bat

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe "C:\Users\vs2012\Documents\Visual Studio 2012\Projects\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe" /u
pause

В результате выполнения этого файла с правами администратора наша служба будет удалена из системы, а в файле WindowsService1.InstallLog появится запись:
"Выполняется удаление службы Service1 из системы...
Служба Service1 успешно удалена из системы."

Это легкий путь. Но, поскольку я поставил себе цель <> и легких путей не ищу, то попробую сделать инсталятор.
Для этого идем Файл -> Добавить -> Создать проект -> Другие типы проектов -> Установка и развертывание.
Не знаю у кого как, а у себя я увидел такую картинку:
рис. 11


При выборе Включение InstallShield Limited Edition и нажатии ОК вас перекинет на страницу C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\InstallShield\InstallShieldProject\1049\InstallShield_ult.html из которой будет предложено перейти на сайт загрузки.
После заполнения формы жмем кнопку Download и получаем установщик. Вам будет дан серийный номер для регистрации InstallShield Limited Edition у вас в системе. Одновременно на указанный при регистрации п/я придет письмо с серийным номером и ссылкой на скачивание.
После скачивания и установки InstallShield Limited Edition идем тем же путем Файл -> Добавить -> Создать проект -> Другие типы проектов -> Установка и развертывание. И теперь уже видим такую картинку
рис. 12


Выбираем InstallShield Limited Edition Projects, жмем Ок и попадаем в мастер.
На первом этапе будет предложено выбрать имя компании, название приложения, его версию и сайт компании производителя.
На втором этапе будет предложен выбор ОС для которых предназначено ваше приложение, а так же если хотите, то можете перед установкой выполнить проверку на предмет установленных в системе программ из списка.
Третий этап не доступен в InstallShield Limited Edition.
На четвертом этапе будет выведено дерево папок с предложением конечной папки для инсталляции вашего приложения. Так же можно выбрать и другие папки для установки. Для этого жмем правой кнопкой на любой из папок и выбираем Show Predefined Folder. Я досконально не разбирался почему в дереве создаются папки с именем введенной на первом этапе компании и почему эти папки нельзя удалить даже если я буду инсталлировать свое приложение в другую папку. Думаю, что это ограничение InstallShield Limited Edition.
Тем не менее я добавлю папку [SystemFolder] и именно в нее установлю нашу службу. Для этого жмем правой кнопкой на любой из папок и выбираем Show Predefined Folder. Ставим галку напротив [SystemFolder]. Папка появляется в дереве. Становимся на нее.
рис. 13

 


Жмем кнопку Add Projects Output и в открывшемся окне ставим галку на Основные выходные файлы.
Видим такую картинку:
рис. 14

рис. 15.


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


Для того что бы создать инсталлятор становимся на узел Setup1, жмем правой кнопкой и выбираем Построение.
рис. 17.


И тут нас ждет разочарование. В виде сообщения об ошибке -5036: Internal build error ISEXP : error : -5036: Internal build error
рис. 18


Путем рыскания по интернет находим решение.
Раскрываем узел под номером 2, становимся на Files и жмем не нем два раза мышью. В Disanation Computer Folder идем к нашим файлам в папке SystemFolder жмем правой кнопкой на имени файла, выбираем Properties. На закладке Com & .NET Setting ставим галку Installer Class. Жмем Применить.
рис. 19.


Идем в Построение -> Диспетчер конфигураций
рис. 20


В таблице напротив имени нашего установщика выбираем CD-ROM.
рис. 21


После этого опять становимся на узел Setup1, жмем правой кнопкой и выбираем Построение. Наш инсталятор готов!
Теперь можно инсталлировать наш сервис в систему. Жмем правой кнопкой на узел Setup1 и выбираем Install. Запустится мастер установки нашего сервиса. Не смотря на то, что инсталятор говорит, что приложение будет установлено в C:\Programm Files\Имя компании\Имя продукта, приложение ставится в System32, т.е. туда, куда я и хотел его установить.
Сами же файлы установки были созданы в C:\Users\vs2012\Documents\Visual Studio 2012\Projects\WindowsService1\Setup1\Setup1\Express\CD_ROM\DiskImages\DISK1
Вот и все. Статья написана больше для того, что бы самому не забыть, как сделать шаблон сервиса и установщика. Если кому то поможет буду только рад.
Были использованы материалы из статей http://habrahabr.ru/post/102826/ http://wladm.narod.ru/C_Sharp/services.html http://stackoverflow.com/questions/11994725/how-do-i-create-an-installshield-le-project-to-install-a-windows-service 

C# Visual Studio 2012 Сервис

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14512    109    46    

108

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11948    45    33    

67

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    10726    47    8    

78

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

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

4800 3840 руб.

14.01.2013    191327    1153    0    

920

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    33856    108    152    

75

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    32670    145    18    

51

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    73762    629    45    

88

Инструменты администратора БД Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10174    10    4    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. PiccaHut001 17.10.14 18:53 Сейчас в теме
Всегда забавлял русский перевод английских слов. В Visual Studio "Build" перевели как "построение". Мне кажется, уместнее было-бы "Собрать".
"Построить решение" - никого не корёжит?
2. chekrizh 30.05.18 09:44 Сейчас в теме
3. user867295 01.11.19 16:13 Сейчас в теме
А как быть с новым Visual Studio 2019? Не найду пункта с InstallShield
Оставьте свое сообщение