Files
nfc-actions/Installer/Product.wxs
Amal Graafstra a1d03fec2a Release v1.0.3: Enhanced NDEF reading and UX improvements
Major Improvements:
- Implement exclusive card access with retry logic and exponential backoff
- Fix Type 4 NDEF length parsing (now correctly reads NTAG424 and similar chips)
- Add enhanced card type detection (Type 2 vs Type 4)
- Implement chunked reading for large NDEF messages
- Add proper TLV parsing for Type 2 tags

Bug Fixes:
- Fix WPF window lifecycle issue (visual tree error on reopen)
- Fix NDEF length parsing incorrectly detecting extended format
- Correct data offset for Type 4 tag reading

New Features:
- Multi-line log selection and copy to clipboard
- Context menu with Copy Selected Lines, Copy All, Select All
- Runtime version roll-forward support (.NET 8.0.x compatibility)

Technical Details:
- Type 4 tags now use correct 2-byte NLEN field per NFC Forum spec
- Removed incorrect 3-byte extended length detection
- Window now hides instead of closing for proper tray app behavior
- Connection attempts exclusive access first, falls back to shared mode
- Status timeout increased from 0ms to 1000ms for better card detection
2025-11-18 22:20:13 -08:00

118 lines
4.8 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
Name="NFC Actions"
Language="1033"
Version="1.0.3.0"
Manufacturer="Dangerous Things"
UpgradeCode="A1B2C3D4-E5F6-4A5B-8C9D-0E1F2A3B4C5D">
<Package InstallerVersion="200"
Compressed="yes"
InstallScope="perUser"
Description="NFC Actions - NFC card reader monitoring and automation"
Comments="Visit dangerousthings.com for more information" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />
<!-- Suppress ICE validation warnings for per-user installation -->
<Property Id="DISABLEADVTSHORTCUTS" Value="1" />
<Property Id="MSIINSTALLPERUSER" Value="1" />
<!-- Launch application after installation -->
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch NFC Actions" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
<Property Id="WixShellExecTarget" Value="[#NfcActionsExe]" />
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes" />
<Icon Id="ProductIcon" SourceFile="..\NfcActions\Resources\icon.ico" />
<Property Id="ARPPRODUCTICON" Value="ProductIcon" />
<Property Id="ARPHELPLINK" Value="https://dangerousthings.com" />
<Property Id="ARPURLINFOABOUT" Value="https://dangerousthings.com" />
<Feature Id="ProductFeature" Title="NFC Actions" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentGroupRef Id="HarvestedFiles" />
<ComponentRef Id="ApplicationShortcut" />
<ComponentRef Id="AutoStartRegistry" />
</Feature>
<UI>
<!-- Use WixUI_Minimal without license page -->
<UIRef Id="WixUI_InstallDir" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<!-- Skip the license page -->
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="2">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">1</Publish>
<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="LocalAppDataFolder">
<Directory Id="CompanyFolder" Name="DangerousThings">
<Directory Id="INSTALLFOLDER" Name="NFC Actions" />
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="NFC Actions"/>
</Directory>
</Directory>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="B2C3D4E5-F6A7-4B6C-9D0E-1F2A3B4C5D6E">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="NFC Actions"
Description="NFC card reader monitoring and automation"
Target="[INSTALLFOLDER]NfcActions.exe"
WorkingDirectory="INSTALLFOLDER"
Icon="ProductIcon" />
<RemoveFolder Id="CleanUpShortCut" Directory="ApplicationProgramsFolder" On="uninstall"/>
<RegistryValue Root="HKCU"
Key="Software\DangerousThings\NfcActions"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</DirectoryRef>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="AutoStartRegistry" Guid="C3D4E5F6-A7B8-4C7D-0E1F-2A3B4C5D6E7F">
<RegistryValue Root="HKCU"
Key="Software\Microsoft\Windows\CurrentVersion\Run"
Name="NFC Actions"
Type="string"
Value="&quot;[INSTALLFOLDER]NfcActions.exe&quot;"
KeyPath="yes"/>
</Component>
</DirectoryRef>
<!-- Registry and cleanup component -->
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="RegistryEntries" Guid="D4E5F6A7-B8C9-4D8E-1F2A-3B4C5D6E7F8A">
<RegistryValue Root="HKCU"
Key="Software\DangerousThings\NfcActions"
Name="Installed"
Type="integer"
Value="1"
KeyPath="yes"/>
<RemoveFolder Id="RemoveINSTALLFOLDER" Directory="INSTALLFOLDER" On="uninstall" />
<RemoveFolder Id="RemoveCompanyFolder" Directory="CompanyFolder" On="uninstall" />
</Component>
</ComponentGroup>
<!-- Harvested files will be included from HarvestedFiles.wxs -->
</Product>
</Wix>