Add support for 64-bit components and create desktop shortcut in WiX installer

- Mark components as 64-bit by adding Win64="yes" attribute in harvested files.
- Update WiX configuration to use ProgramFiles64Folder for installation.
- Add a new component for creating a desktop shortcut for the WebDrop Bridge application.
This commit is contained in:
claudi 2026-02-19 09:01:43 +01:00
parent 37b772166c
commit f9cfb9f558
5 changed files with 2920 additions and 2873 deletions

File diff suppressed because one or more lines are too long

View file

@ -11,15 +11,17 @@
<Feature Id="ProductFeature" Title="WebDrop Bridge" Level="1"> <Feature Id="ProductFeature" Title="WebDrop Bridge" Level="1">
<ComponentGroupRef Id="AppFiles" /> <ComponentGroupRef Id="AppFiles" />
<ComponentRef Id="ProgramMenuShortcut" /> <ComponentRef Id="ProgramMenuShortcut" />
<ComponentRef Id="DesktopShortcut" />
</Feature> </Feature>
<Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder"> <Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER" Name="WebDrop Bridge" /> <Directory Id="INSTALLFOLDER" Name="WebDrop Bridge" />
</Directory> </Directory>
<Directory Id="ProgramMenuFolder"> <Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="WebDrop Bridge"/> <Directory Id="ApplicationProgramsFolder" Name="WebDrop Bridge"/>
</Directory> </Directory>
<Directory Id="DesktopFolder" />
</Directory> </Directory>
<DirectoryRef Id="ApplicationProgramsFolder"> <DirectoryRef Id="ApplicationProgramsFolder">
@ -39,5 +41,21 @@
KeyPath="yes" /> KeyPath="yes" />
</Component> </Component>
</DirectoryRef> </DirectoryRef>
<DirectoryRef Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="*">
<Shortcut Id="DesktopApplicationShortcut"
Name="WebDrop Bridge"
Description="Web Drag-and-Drop Bridge"
Target="[INSTALLFOLDER]WebDropBridge.exe"
WorkingDirectory="INSTALLFOLDER" />
<RegistryValue Root="HKCU"
Key="Software\WebDropBridge"
Name="DesktopShortcut"
Type="integer"
Value="1"
KeyPath="yes" />
</Component>
</DirectoryRef>
</Product> </Product>
</Wix> </Wix>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -229,6 +229,17 @@ class WindowsBuilder:
else: else:
print(f" ✓ Harvested files") print(f" ✓ Harvested files")
# Post-process harvested file to mark components as 64-bit
if harvest_file.exists():
content = harvest_file.read_text()
# Add Win64="yes" to all Component tags
content = content.replace(
'<Component ',
'<Component Win64="yes" '
)
harvest_file.write_text(content)
print(f" ✓ Marked components as 64-bit")
# Compile both WiX files # Compile both WiX files
wix_obj = self.build_dir / "WebDropBridge.wixobj" wix_obj = self.build_dir / "WebDropBridge.wixobj"
wix_files_obj = self.build_dir / "WebDropBridge_Files.wixobj" wix_files_obj = self.build_dir / "WebDropBridge_Files.wixobj"
@ -298,15 +309,17 @@ class WindowsBuilder:
<Feature Id="ProductFeature" Title="WebDrop Bridge" Level="1"> <Feature Id="ProductFeature" Title="WebDrop Bridge" Level="1">
<ComponentGroupRef Id="AppFiles" /> <ComponentGroupRef Id="AppFiles" />
<ComponentRef Id="ProgramMenuShortcut" /> <ComponentRef Id="ProgramMenuShortcut" />
<ComponentRef Id="DesktopShortcut" />
</Feature> </Feature>
<Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder"> <Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER" Name="WebDrop Bridge" /> <Directory Id="INSTALLFOLDER" Name="WebDrop Bridge" />
</Directory> </Directory>
<Directory Id="ProgramMenuFolder"> <Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="WebDrop Bridge"/> <Directory Id="ApplicationProgramsFolder" Name="WebDrop Bridge"/>
</Directory> </Directory>
<Directory Id="DesktopFolder" />
</Directory> </Directory>
<DirectoryRef Id="ApplicationProgramsFolder"> <DirectoryRef Id="ApplicationProgramsFolder">
@ -326,6 +339,22 @@ class WindowsBuilder:
KeyPath="yes" /> KeyPath="yes" />
</Component> </Component>
</DirectoryRef> </DirectoryRef>
<DirectoryRef Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="*">
<Shortcut Id="DesktopApplicationShortcut"
Name="WebDrop Bridge"
Description="Web Drag-and-Drop Bridge"
Target="[INSTALLFOLDER]WebDropBridge.exe"
WorkingDirectory="INSTALLFOLDER" />
<RegistryValue Root="HKCU"
Key="Software\\WebDropBridge"
Name="DesktopShortcut"
Type="integer"
Value="1"
KeyPath="yes" />
</Component>
</DirectoryRef>
</Product> </Product>
</Wix> </Wix>
''' '''