2010-03-04 2 views
3

У меня есть услуга выигрыша, которую я хочу представить во всех своих продуктах. Итак, как я могу добавить службу настройки ко всем настройкам моих проектов. Я пытаюсь добавить служебные файлы в setup (exe, config ref dll), но он не настраивается автоматически, и я должен использовать installutil.exe. Как установить его с помощью моих продуктов без использования installutil.exe. Могу ли я использовать ServiceProcessInstaller и ServiceInstaller в проекте установки?Ввести услугу выигрыша в настройку

спасибо

ответ

3

Сначала почитайте о создании установок (да, вы можете использовать ServiceProcessInstaller и ServiceInstaller в установке)

Далее, посмотрим на создание модуля слияния. Модуль слияния подобен библиотеке, которую вы можете включить в свою настройку. Таким образом, вы создали бы модуль слияния для своей службы, и вы включили бы этот модуль слияния в каждую из ваших настроек продукта.

Edit (добавлены инструкции по настройке модуля слияния)

Во-первых, убедитесь, что ваша служба устанавливает правильно, если вы используете InstallUtil (этот шаг подтверждает, что установщик службы и процесс обслуживания кода установщика правильно написано и приписывали).

После этого, я думаю, что все, что вам нужно сделать, это настроить ваш модуль слияния для установки службы. Вот как это делается:

  • Откройте свое решение и щелкните правой кнопкой мыши проект вашего модуля слияния.

  • Выбрать вид | Пользовательские действия (новая вкладка откроется в вашем текстовом окне редактора)

  • В Actions вкладке Настройка редактора, щелкните правой кнопкой мыши на Установить папку и выбрать «Добавить Custom Action» (откроется диалоговое окно)

  • в окне Выбор элемента в проекте Диалог, падение вниз «Look In» поле со списком и выберите «модуль настраиваемого Папка»

  • Нажмите кнопку «добавить выход» кнопку (другой диалог)

  • в выход добавить проект Диалог. Выберите проект службы в раскрывающемся меню «Проект».

  • В списке выберите «Первичный вывод» (вы сообщаете модулю слияния для поиска кода установщика. Вы говорите, что ищете его в скомпилированном выпуске моего сервисного проекта и что при настройке времени выполнения этот вывод будет находиться в каталоге установки службы)

  • ОК все диалоги.

  • Выполните те же действия в папке «Удалить», чтобы ваша служба также была удалена правильно.

Теперь небольшая оговорка: Я знаю , что это работает с нормальными (ИБМ) проектов установки. Я не сделал это с модулем слияния, но я уверен, что он сработает.

Удачи!

+0

JMarsch, спасибо. Я создал модуль msm с выходом проекта моего winService. Постройте его и включите в мои настройки продуктов. Запустите настройку. Все содержимое сервиса (service.exe, config, dll) в нужном месте. Хорошо! Но служба не устанавливает, хотя я добавил в сервис службы msm с ServiceInstallers. –

+1

@Andrew Kalashnikov: Вам нужно сообщить настройке, чтобы найти пользовательский код в вашей сборке. Во-первых, отметили ли вы свой установщик атрибутом установщика и правильно ли установили его с InstallUtil? Если это так, то я думаю, что все, что вам нужно сделать, это настроить свой проект MSM для использования настраиваемого действия. Я отредактирую свой ответ, чтобы описать, как (недостаточно места в комментариях) – JMarsch

+0

JMarsch, спасибо большое. Я сделал это. Некоторые подробности. В моем стандартном проекте настройки я добавляю специальные действия для установки && unintall. Когда вы говорите мне о модулях слияния, я пытаюсь сделать то же самое, но имею странные ошибки. После вашего редактирования я верю в себя и обнаруживаю ошибку MS. Затем я обновляю VS08 до sp1 и строю модуль слияния, добавляю его в свои продукты и РАБОТАЕТ! Большое спасибо. Слияния модулей для меня новы. –

3

Begin на шаге 6 post here. Как только вы перейдете к шагу 9, вы сможете использовать InstallUtil.exe для установки и удаления вашего сервиса.

Теперь, если вы хотите избежать использования InstallUtil.exe, вы можете изменить свою службу, чтобы установить/удалить из командной строки. Для этого выполните шаги, которые обсуждаются в this post.

Надеюсь, это поможет.

+0

Мэтт Дэвис, спасибо за полезный ответ. Но есть ли способ установить сервис автоматически с моим продуктом без каких-либо дополнительных действий (installutil.exe; запустить exe из cmd) –

+1

Пожалуйста, перечитайте вторую ссылку. Ссылки Matt - первый комментарий: «Обратите внимание, что это решение не требует использование InstallUtil.exe, поэтому вам не нужно предоставлять его как часть вашей программы установки ». –

+0

Скотт, конец сообщений: «после установки службы на целевой машине просто запустите службу из командной строки (как и любое обычное приложение) с аргументом командной строки -install для установки и запуска вашей службы» –