Can you try this piece of wix code? I cleaned it up a bit to remove some defaults.
If you do not want to host a file with a different file name, you do not need the Name attribute.
If you want your service to start as a local system, you need to set up an empty account. If you want it to run as a specific user, then you can set the properties on your command line SVCACCOUNT = someuser SVCPASSWORD = "password", otherwise just skip them.
If the name and identifier match, you can skip the identifier.
I prefer to use variables for things that I use in several places to avoid typos, such as ServiceName, which is used in ServiceInstall and ServiceControl, which I use:
<WixVariable Id="ServiceName" Value="LayoutSwitcher" />
<Component Id="PlcmLayoutSwitcherWinSvc.exe" Guid="PUT_GUID_HERE"> <File Id="LayoutSwitcherWinSvc.exe" Source="$(var.LayoutSwitcherWinSvc_TargetDir)LayoutSwitcherWinSvc.exe" KeyPath="yes" /> <ServiceInstall Name="!(wix.ServiceName)" DisplayName="LayoutSwitcher" Description="LayoutSwitcher" ErrorControl="ignore" Type="ownProcess" Vital="yes" Start="auto" Account="[SVCACCOUNT]" Password="[SVCPASSWORD]" Interactive="no" /> <ServiceControl Id="ServiceControl_!(wix.ServiceName)" Name="!(wix.ServiceName)" Start="install" Stop="both" Remove="uninstall" Wait="yes" /> </Component>
The log you recorded is incomplete, run the installer to the end and attach the log only after you close the installer. IMO debug log is not required.
Ilirb source share