Есть ли в Wix 3 встроенный способ просто проверить, существует ли служба?Самое близкое предположение, которое я могу придумать, это использовать ServiceConfig и пытаться обнаружить сбой.
AppSecInc.Расширения сообщества MSI имеют настраиваемое действие Service_Exists. http://msiext.codeplex.com
Электронная документация: http://code.dblock.org/Source/msiext/1.2/Docs/_custom_actions_2_system_tools_2_service_impl_8h.html#a6fdcddc7b04a310a368c08726d3be6b3
<Binary Id="SystemTools" SourceFile="$(var.BinDir)\SystemTools.dll" /> <CustomAction Id="SetServiceName" Property="SERVICE_NAME" Value="Service1" /> <CustomAction Id="ServiceExists" BinaryKey="SystemTools" DllEntry="Service_Exists" Execute="immediate" Return="check" /> <InstallExecuteSequence> <Custom Action="SetServiceName" After="InstallFiles">NOT Installed</Custom> <Custom Action="ServiceExists" After="SetServiceName">NOT Installed</Custom> </InstallExecuteSequence>
Значение SERVICE_EXISTS установлено в «1», если служба существует,«0» в противном случае.