Add release build configuration and MSI installer

- Configure self-contained, single-file release build
- Add version and company metadata to project
- Fix Assembly.Location for single-file compatibility (use AppContext.BaseDirectory)
- Add Resources folder copy to publish output
- Create WiX installer project with Product.wxs
- Configure auto-start via HKCU Run registry key
- Add build-release.ps1 PowerShell script for automated builds
- MSI installer installs to %LOCALAPPDATA%\DangerousThings\NFC Actions
- Creates Start Menu shortcut
- Automatically starts application on user login

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-06 23:21:14 -08:00
parent 5b6a7f0fa5
commit 37309f30e1
5 changed files with 277 additions and 4 deletions

View File

@@ -7,6 +7,21 @@
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
<ApplicationIcon>Resources\icon.ico</ApplicationIcon>
<Version>1.0.0</Version>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>1.0.0.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>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishReadyToRun>true</PublishReadyToRun>
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
</PropertyGroup>
<ItemGroup>
@@ -22,7 +37,18 @@
</ItemGroup>
<ItemGroup>
<None Include="Resources\icon.ico" CopyToOutputDirectory="PreserveNewest" />
<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>