Сначала почитайте о создании установок (да, вы можете использовать ServiceProcessInstaller и ServiceInstaller в установке)
Далее, посмотрим на создание модуля слияния. Модуль слияния подобен библиотеке, которую вы можете включить в свою настройку. Таким образом, вы создали бы модуль слияния для своей службы, и вы включили бы этот модуль слияния в каждую из ваших настроек продукта.
Edit (добавлены инструкции по настройке модуля слияния)
Во-первых, убедитесь, что ваша служба устанавливает правильно, если вы используете InstallUtil (этот шаг подтверждает, что установщик службы и процесс обслуживания кода установщика правильно написано и приписывали).
После этого, я думаю, что все, что вам нужно сделать, это настроить ваш модуль слияния для установки службы. Вот как это делается:
Откройте свое решение и щелкните правой кнопкой мыши проект вашего модуля слияния.
Выбрать вид | Пользовательские действия (новая вкладка откроется в вашем текстовом окне редактора)
В Actions вкладке Настройка редактора, щелкните правой кнопкой мыши на Установить папку и выбрать «Добавить Custom Action» (откроется диалоговое окно)
в окне Выбор элемента в проекте Диалог, падение вниз «Look In» поле со списком и выберите «модуль настраиваемого Папка»
Нажмите кнопку «добавить выход» кнопку (другой диалог)
в выход добавить проект Диалог. Выберите проект службы в раскрывающемся меню «Проект».
В списке выберите «Первичный вывод» (вы сообщаете модулю слияния для поиска кода установщика. Вы говорите, что ищете его в скомпилированном выпуске моего сервисного проекта и что при настройке времени выполнения этот вывод будет находиться в каталоге установки службы)
ОК все диалоги.
Выполните те же действия в папке «Удалить», чтобы ваша служба также была удалена правильно.
Теперь небольшая оговорка: Я знаю , что это работает с нормальными (ИБМ) проектов установки. Я не сделал это с модулем слияния, но я уверен, что он сработает.
Удачи!
JMarsch, спасибо. Я создал модуль msm с выходом проекта моего winService. Постройте его и включите в мои настройки продуктов. Запустите настройку. Все содержимое сервиса (service.exe, config, dll) в нужном месте. Хорошо! Но служба не устанавливает, хотя я добавил в сервис службы msm с ServiceInstallers. –
@Andrew Kalashnikov: Вам нужно сообщить настройке, чтобы найти пользовательский код в вашей сборке. Во-первых, отметили ли вы свой установщик атрибутом установщика и правильно ли установили его с InstallUtil? Если это так, то я думаю, что все, что вам нужно сделать, это настроить свой проект MSM для использования настраиваемого действия. Я отредактирую свой ответ, чтобы описать, как (недостаточно места в комментариях) – JMarsch
JMarsch, спасибо большое. Я сделал это. Некоторые подробности. В моем стандартном проекте настройки я добавляю специальные действия для установки && unintall. Когда вы говорите мне о модулях слияния, я пытаюсь сделать то же самое, но имею странные ошибки. После вашего редактирования я верю в себя и обнаруживаю ошибку MS. Затем я обновляю VS08 до sp1 и строю модуль слияния, добавляю его в свои продукты и РАБОТАЕТ! Большое спасибо. Слияния модулей для меня новы. –