Update MSI wrapper to use dynamic log path and ensure cleanup on uninstall
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good

- Modified the `ExeCommand` in `msi-wrapped.wxs` to log installation updates to the correct per-user directory.
- Added removal actions for update files and directories during uninstallation to maintain a clean environment.
This commit is contained in:
Tom Butcher 2026-08-08 20:36:57 +01:00
parent 9051b94767
commit c1e0921c3e

View File

@ -37,14 +37,15 @@
<Property Id="MSIINSTALLPERUSER" Secure="yes" Value="1" />
<Property Id="REBOOT" Value="ReallySuppress" />
<Property Id="FarmControlUpdateLog" Value="[FarmControlUpdatesDir]install.log" />
<Binary Id="WrappedExe" SourceFile="__SETUP_EXE__" />
<!-- ExeCommand is a Formatted field, so [FarmControlUpdatesDir] resolves to the
real per-user path here. An intermediate Property would not resolve it
(property values are not recursively formatted). -->
<CustomAction
Id="RunInstaller"
BinaryKey="WrappedExe"
ExeCommand="/S /UPDATE /RESTARTFC /LOG=&quot;[FarmControlUpdateLog]&quot;"
ExeCommand="/S /UPDATE /RESTARTFC /LOG=&quot;[FarmControlUpdatesDir]install.log&quot;"
Execute="immediate"
Impersonate="yes"
Return="check" />
@ -55,6 +56,10 @@
<Directory Id="FarmControlUpdatesDir" Name="Updates">
<Component Id="UpdatesFolderComponent" Guid="A1B2C3D4-E5F6-7890-ABCD-EF1234567890">
<CreateFolder />
<!-- ICE64: per-user directories must be scheduled for removal on uninstall. -->
<RemoveFile Id="RemoveUpdatesFiles" Directory="FarmControlUpdatesDir" Name="*" On="uninstall" />
<RemoveFolder Id="RemoveFarmControlUpdatesDir" Directory="FarmControlUpdatesDir" On="uninstall" />
<RemoveFolder Id="RemoveFarmControlAppDataDir" Directory="FarmControlAppDataDir" On="uninstall" />
<RegistryValue
Root="HKCU"
Key="Software\Tom Butcher\Farm Control"