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
57 lines
2.0 KiB
XML
57 lines
2.0 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<OutputType>WinExe</OutputType>
|
|
<TargetFramework>net8.0-windows</TargetFramework>
|
|
<Nullable>enable</Nullable>
|
|
<UseWPF>true</UseWPF>
|
|
<UseWindowsForms>true</UseWindowsForms>
|
|
<ApplicationIcon>Resources\icon.ico</ApplicationIcon>
|
|
<Version>1.0.3</Version>
|
|
<AssemblyVersion>1.0.3.0</AssemblyVersion>
|
|
<FileVersion>1.0.3.0</FileVersion>
|
|
<Company>Dangerous Things</Company>
|
|
<Product>NFC Actions</Product>
|
|
<Description>NFC card reader monitoring and action automation</Description>
|
|
<Copyright>Copyright © 2025 Dangerous Things</Copyright>
|
|
<RollForward>LatestMinor</RollForward>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(Configuration)'=='Release'">
|
|
<PublishSingleFile>false</PublishSingleFile>
|
|
<SelfContained>true</SelfContained>
|
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
|
<PublishReadyToRun>false</PublishReadyToRun>
|
|
<PublishTrimmed>false</PublishTrimmed>
|
|
<EnableCompressionInSingleFile>false</EnableCompressionInSingleFile>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="InputSimulatorCore" Version="1.0.5" />
|
|
<PackageReference Include="PCSC" Version="7.0.1" />
|
|
<PackageReference Include="PCSC.Iso7816" Version="7.0.1" />
|
|
<PackageReference Include="System.Management" Version="9.0.10" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Resource Include="Resources\*.png" />
|
|
<Resource Include="Resources\*.ico" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="Resources\**\*">
|
|
<Link>Resources\%(RecursiveDir)%(Filename)%(Extension)</Link>
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
<Target Name="CopyResourcesOnPublish" AfterTargets="Publish">
|
|
<ItemGroup>
|
|
<ResourceFiles Include="$(ProjectDir)Resources\**\*" />
|
|
</ItemGroup>
|
|
<Copy SourceFiles="@(ResourceFiles)" DestinationFolder="$(PublishDir)Resources\%(RecursiveDir)" SkipUnchangedFiles="true" />
|
|
</Target>
|
|
|
|
</Project>
|