Fix WPF single-file deployment crash and improve installer

- Disable single-file publishing (causes DirectWrite/font crash in WPF)
- Switch to multi-file self-contained deployment
- Update WiX installer to harvest all publish files using heat.exe
- Fix tray icon loading issue by including all necessary DLLs
- Reduce MSI size while maintaining all functionality

Fixes:
- System.TypeInitializationException crash on startup
- Missing tray icon (now shows DT logo correctly)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-07 08:17:41 -08:00
parent 37309f30e1
commit f3323420a8
6 changed files with 101 additions and 19 deletions

View File

@@ -27,6 +27,7 @@
<Feature Id="ProductFeature" Title="NFC Actions" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentGroupRef Id="HarvestedFiles" />
<ComponentRef Id="ApplicationShortcut" />
<ComponentRef Id="AutoStartRegistry" />
</Feature>
@@ -72,30 +73,21 @@
</Component>
</DirectoryRef>
<!-- Registry and cleanup component -->
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="MainExecutable" Guid="D4E5F6A7-B8C9-4D8E-1F2A-3B4C5D6E7F8A">
<File Id="NfcActionsExe"
Source="..\NfcActions\bin\Release\net7.0-windows\win-x64\publish\NfcActions.exe" />
<Component Id="RegistryEntries" Guid="D4E5F6A7-B8C9-4D8E-1F2A-3B4C5D6E7F8A">
<RegistryValue Root="HKCU"
Key="Software\DangerousThings\NfcActions"
Name="MainExe"
Name="Installed"
Type="integer"
Value="1"
KeyPath="yes"/>
<RemoveFolder Id="RemoveINSTALLFOLDER" Directory="INSTALLFOLDER" On="uninstall" />
<RemoveFolder Id="RemoveCompanyFolder" Directory="CompanyFolder" On="uninstall" />
</Component>
<Component Id="ResourcesFolder" Guid="E5F6A7B8-C9D0-4E9F-2A3B-4C5D6E7F8A9B">
<File Id="IconIco" Source="..\NfcActions\bin\Release\net7.0-windows\win-x64\publish\Resources\icon.ico" />
<RegistryValue Root="HKCU"
Key="Software\DangerousThings\NfcActions"
Name="Resources"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</ComponentGroup>
<!-- Harvested files will be included from HarvestedFiles.wxs -->
</Product>
</Wix>