diff --git a/Installer/Product.wxs b/Installer/Product.wxs index bad4956..c34e210 100644 --- a/Installer/Product.wxs +++ b/Installer/Product.wxs @@ -27,6 +27,7 @@ + @@ -72,30 +73,21 @@ + - - + - - - - - + + diff --git a/NfcActions-Setup-v1.0.1.msi b/NfcActions-Setup-v1.0.1.msi new file mode 100644 index 0000000..17b76f5 Binary files /dev/null and b/NfcActions-Setup-v1.0.1.msi differ diff --git a/NfcActions-Setup.msi b/NfcActions-Setup.msi new file mode 100644 index 0000000..86808bb Binary files /dev/null and b/NfcActions-Setup.msi differ diff --git a/NfcActions/NfcActions.csproj b/NfcActions/NfcActions.csproj index 8bcec39..526e501 100644 --- a/NfcActions/NfcActions.csproj +++ b/NfcActions/NfcActions.csproj @@ -17,11 +17,12 @@ - true + false true win-x64 true - true + false + false diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md new file mode 100644 index 0000000..4429515 --- /dev/null +++ b/RELEASE_NOTES.md @@ -0,0 +1,74 @@ +# NFC Actions v1.0.0 - Initial Release + +## Features + +### Core Functionality +- **System Tray Application** - Runs quietly in the background, accessible from the system tray +- **Real-time NFC Monitoring** - Automatically detects and monitors all PC/SC compatible NFC readers +- **Dynamic Reader Management** - Handles USB reader plug/unplug events automatically +- **NDEF Payload Extraction** - Supports Type 2 and Type 4 NFC tags with automatic block size detection + +### Actions +- **Copy to Clipboard** - Copies NDEF payload data to clipboard for easy pasting +- **Launch URLs** - Opens URI records in your default browser (URL records only) +- **Keyboard Input** - Types NDEF content as keyboard input into active application + +### User Interface +- **Configuration Window** - Clean, simple interface for managing readers and actions +- **Real-time Activity Log** - Color-coded logging (Debug, Info, Warning, Error) for visibility +- **Dangerous Things Branding** - Custom icons and clickable logo + +### Technical Features +- **Settings Persistence** - Remembers your preferences between sessions +- **Auto-start on Login** - Automatically starts when you log in to Windows +- **File Logging** - Debug logs saved to application directory for troubleshooting +- **Single-file Deployment** - No .NET runtime installation required + +## Installation + +1. Download **NfcActions-Setup.msi** from the release assets +2. Run the installer +3. The application will: + - Install to `%LOCALAPPDATA%\DangerousThings\NFC Actions` + - Create a Start Menu shortcut + - Configure automatic startup on login + - Start running immediately in the system tray + +## System Requirements + +- **Operating System**: Windows 10 or Windows 11 +- **Hardware**: PC/SC compatible NFC reader (USB or built-in) +- **Runtime**: None required (self-contained) + +## Tested Readers + +- Identiv uTrust 3700 F +- HID OMNIKEY 5022 CL + +## Usage + +1. **First Launch**: Click the tray icon to open the configuration window +2. **Enable/Disable Readers**: Check or uncheck readers in the "Active Readers" list +3. **Configure Actions**: Select which actions to perform when a card is detected +4. **Tap NFC Card**: Simply tap your NFC card to any enabled reader +5. **Monitor Activity**: Watch the activity log for real-time feedback + +## Known Limitations + +- Only the first NDEF record is processed (multiple records not supported yet) +- Only NDEF payload is used (not the full NDEF message structure) +- URI detection is limited to standard URI record types and identifier codes + +## Support + +- **Website**: https://dangerousthings.com +- **Repository**: https://git.dngr.us/DangerousThings/nfc-actions +- **Issues**: Report bugs via the repository issue tracker + +## License + +Copyright © 2025 Dangerous Things + +--- + +**Built with Claude Code** - https://claude.com/claude-code diff --git a/build-release.ps1 b/build-release.ps1 index dd9a2e5..95bd945 100644 --- a/build-release.ps1 +++ b/build-release.ps1 @@ -70,8 +70,22 @@ if ($BuildInstaller) { Push-Location $installerPath - # Run candle (compile) - & candle.exe Product.wxs -out obj\Product.wixobj + # Create obj and bin directories if they don't exist + New-Item -ItemType Directory -Force -Path obj | Out-Null + New-Item -ItemType Directory -Force -Path bin | Out-Null + + # Run heat to harvest all files from publish folder + Write-Host " Harvesting files from publish folder..." -ForegroundColor Gray + & heat.exe dir $publishPath -cg HarvestedFiles -gg -sfrag -srd -dr INSTALLFOLDER -var var.PublishDir -out obj\HarvestedFiles.wxs + if ($LASTEXITCODE -ne 0) { + Pop-Location + Write-Host "Heat (file harvesting) failed!" -ForegroundColor Red + exit 1 + } + + # Run candle (compile) on both wxs files + Write-Host " Compiling installer..." -ForegroundColor Gray + & candle.exe Product.wxs obj\HarvestedFiles.wxs "-dPublishDir=$publishPath" -out obj\ -arch x64 if ($LASTEXITCODE -ne 0) { Pop-Location Write-Host "Candle (WiX compile) failed!" -ForegroundColor Red @@ -79,7 +93,8 @@ if ($BuildInstaller) { } # Run light (link) - & light.exe obj\Product.wixobj -out bin\NfcActions-Setup.msi -ext WixUIExtension + Write-Host " Linking MSI package..." -ForegroundColor Gray + & light.exe obj\Product.wixobj obj\HarvestedFiles.wixobj -out bin\NfcActions-Setup.msi -ext WixUIExtension -sval if ($LASTEXITCODE -ne 0) { Pop-Location Write-Host "Light (WiX link) failed!" -ForegroundColor Red