<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <Product Id="*" Name="NimbusBeaconNode" Language="1033" Version="1.0.0.0" Manufacturer="Status" UpgradeCode="7b226e1e-bb65-4bbf-a43a-dfbff394ea36"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> <MediaTemplate CabinetTemplate="NBN_{0}.cab" EmbedCab="yes" /> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" /> <UI> <UIRef Id="Nimbus_InstallDir" /> </UI> <WixVariable Id="WixUILicenseRtf" Value="$(sys.CURRENTDIR)/nimbus-wix/LICENSE-APACHEv2.rtf" /> <Feature Id="ProductFeature" Title="Nimbus Beacon Node" Level="1"> <ComponentGroupRef Id="ProductComponents" /> </Feature> <Property Id="Command" Value=" " /> <SetProperty Id="Command" After="InstallFiles" Sequence='execute' Value="\"[INSTALLFOLDER]nimbus_beacon_node.exe\"" /> <Property Id="CommandArgs" Value=" " /> <SetProperty Id="CommandArgs" After="InstallFiles" Sequence='execute' Value="--run-as-service --network=\"[NETWORK]\" --web3-url=\"[WURL]\" --data-dir=\"[%APPDATA]\Nimbus\BeaconNode\" --log-file=\"[%APPDATA]\Nimbus\BeaconNode\Nimbus.log\"" /> <CustomAction Id="SCEdit" Directory="INSTALLFOLDER" Execute="deferred" Impersonate="no" ExeCommand="sc.exe config NIMBUS_BEACON_NODE binpath="[Command] [CommandArgs]"" Return="ignore" /> <CustomAction Id="SCStart" Directory="INSTALLFOLDER" Execute="deferred" Impersonate="no" ExeCommand="sc.exe start NIMBUS_BEACON_NODE" Return="ignore" /> <CustomAction Id="SCDelete" Directory="INSTALLFOLDER" Execute="deferred" Impersonate="no" ExeCommand="sc.exe delete NIMBUS_BEACON_NODE" Return="ignore" /> <CustomAction Id="FolderPerms" Directory="INSTALLFOLDER" Execute="deferred" Impersonate="no" ExeCommand="icacls "[%APPDATA]\Nimbus" /inheritancelevel:e" Return="ignore" /> <CustomAction Id="FolderPerms2" Directory="INSTALLFOLDER" Execute="deferred" Impersonate="no" ExeCommand="cmd.exe /c takeown /a /d Y /r /f \"[%APPDATA]\Nimbus\"" Return="ignore" /> <CustomAction Id="FolderPerms3" Directory="INSTALLFOLDER" Execute="deferred" Impersonate="no" ExeCommand=" icacls \"[%APPDATA]\Nimbus\" /grant administrators:F" Return="ignore" /> <InstallExecuteSequence> <Custom Action="SCEdit" Before="InstallFinalize"> NOT REMOVE </Custom> <Custom Action="FolderPerms" After="SCEdit"> NOT REMOVE </Custom> <Custom Action="FolderPerms2" After="FolderPerms"> NOT REMOVE </Custom> <Custom Action="FolderPerms3" After="FolderPerms2"> NOT REMOVE </Custom> <Custom Action="SCStart" After="SCEdit"> NOT REMOVE AND (STARTAFTERINSTALL = "1") </Custom> <Custom Action="SCDelete" Before="InstallFinalize"> Installed AND (REMOVE = "ALL") </Custom> </InstallExecuteSequence> </Product> <Fragment> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLFOLDER" Name="NimbusBeaconNode" /> </Directory> <Directory Id="AppDataFolder"> <Directory Id="NimbusFolder" Name="Nimbus"></Directory> </Directory> </Directory> </Fragment> <Fragment> <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> <Component Id="ProductComponent" Guid="fca4d113-ea07-4d47-b1e4-956b57d8eba9"> <ServiceInstall DisplayName="Nimbus Beacon Node Service" Id="NBNS" ErrorControl="normal" Name="NIMBUS_BEACON_NODE" Start="auto" Type="ownProcess" Account="NT SERVICE\NIMBUS_BEACON_NODE" /> <File Source="$(sys.CURRENTDIR)/build/nimbus_beacon_node.exe" /> <CreateFolder Directory="NimbusFolder"> <util:PermissionEx GenericAll="yes" Traverse="yes" User="NIMBUS_BEACON_NODE" Domain="NT SERVICE" /> <util:PermissionEx Read="yes" GenericRead="yes" Traverse="yes" User="Users" /> <util:PermissionEx User="Administrators" Traverse="yes" TakeOwnership="yes" GenericAll="yes" /> </CreateFolder> <RemoveFolder Id="RemoveNimbusFolder" Directory="NimbusFolder" On="uninstall" /> </Component> </ComponentGroup> </Fragment> </Wix>