2012-05-16 3 views
1

Я создал службу windows C# 4.0. Я создал для него программу установки (.msi), которая устанавливает службу в определенную папку.установить службу windows в пользовательских действиях

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

Как я могу кодировать свои пользовательские действия для установки или при удалении msi, удалить службу Windows?

+0

Обратите внимание, что проекты установщика (.vdproj) не будут поддерживаться в Studio 2011, поэтому лучше переключиться на WiX, прежде чем зайти слишком далеко. Файл .wixproj имеет поддержку в студии и совместим с MSBuild. http://blogs.msdn.com/b/buckh/archive/2011/03/17/visual-studio-setup-projects-vdproj-will-not-ship-with-future-versions-of-vs.aspx –

+0

[Установка службы с использованием WiX] (http://goo.gl/qG1a7) – KMoraz

ответ

2

Вы можете использовать класс ServiceInstaller. Быстрое решение заключалось бы в том, чтобы найти инструмент installutil и выполнить его против вашего Service.exe, но вам нужно сделать вывод, чтобы убедиться, что установка выполнена успешно или нет, и у вас нет большого контроля над Install, Commit, Rollback и Uninstall фазы.

1

Простой ответ: не надо. Правильный способ - установить его с использованием самой базы данных MSI, то есть ServiceInstall и ServiceControl таблиц. Каждая «удобная» IDE для создания MSI, а также WiX поставляются с примитивами для использования этого встроенного средства.

Именно потому, что это лучшая практика, так же, как в том числе регистрации COM в вашем MSI вместо вызова DllRegisterServer из COM (DLL) для регистрации является то, что ваше приложение может быть несуществующим в то время пользователя попытки удалить его.

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

+0

У меня была та же проблема. У меня есть пользовательское действие, которое будет генерировать набор свойств и свойства, которые будут заменены в конфигурационном файле xml. Но затем wix запускает службу до выполнения пользовательского действия. Таким образом, файл конфигурации имеет те же старые значения. Я создал вопрос о переполнении стека http://stackoverflow.com/questions/40043204/how-to-update-xml-with-properties-added-by-the-custom-action/40051322 Можете ли вы мне помочь? – Karthik

Смежные вопросы