Repository navigation
building
github-actions[bot] edited this page Oct 11, 2026
·
1 revision
| Requirement | Notes |
|---|---|
| .NET 10 SDK | The repository pins SDK 10.0.301 via global.json (rollForward: latestPatch) |
| Windows 10+ | Required to build the tests and the CHDMounter_Tester WPF tool (net10.0-windows) |
| Linux / macOS | The application project builds and runs; the tests and Tester require Windows |
| PowerShell 7+ | Required for the release packaging script (build/pack-release.ps1) |
# Restore and build the whole solution (Windows)
dotnet restore CSharp_CHDMounter.sln
dotnet build CSharp_CHDMounter.sln
# Build only the cross-platform application
dotnet build CHDMounter/CHDMounter.csproj
# Run the test suite
dotnet test CHDMounter.Tests/CHDMounter.Tests.csprojThe build treats missing XML documentation on public members as a warning
(GenerateDocumentationFile), so the application and Tester projects build with zero warnings.
The application publishes as a framework-dependent single file (the .NET runtime is not embedded):
dotnet publish CHDMounter/CHDMounter.csproj -c Release -r win-x64Supported runtime identifiers: win-x64, win-arm64, linux-x64, linux-arm64, osx-x64,
osx-arm64.
Two MSBuild settings in CHDMounter.csproj are important:
-
PublishSingleFile+SelfContained=false— one executable per bundle. -
IncludeAllContentForSelfExtract=true— required by the WinFsp.NET bindings, which read their own assembly location to load the native DLL.
build/pack-release.ps1 publishes each runtime and packs it into
release_<version>_<rid>.zip:
# All supported runtimes (default output: CHDMounter/bin/Release)
pwsh ./build/pack-release.ps1
# A specific version and runtime
pwsh ./build/pack-release.ps1 -Version 2.0.0 -Runtime win-x64
# Multiple runtimes
pwsh ./build/pack-release.ps1 -Runtime win-x64,win-arm64Every bundle contains:
-
CHDMounter(CHDMounter.exeon Windows) LICENSE.txtREADME.mdWhatsNew.md
The version defaults to the AssemblyVersion in CHDMounter/CHDMounter.csproj. For correct
Unix executable permissions, run the script on the matching platform.
| Workflow | Trigger | What it does |
|---|---|---|
.github/workflows/ci.yml |
Push to master, pull requests |
Builds and tests on Windows; verifies the application builds on Linux and macOS |
.github/workflows/release.yml |
Tag release_*
|
Tests, packages all six runtime bundles across Windows/Linux/macOS runners and publishes a GitHub release |
.github/workflows/docs.yml |
Changes under docs/ (and on release) |
Builds the docfx site to GitHub Pages and syncs docs/ to the GitHub wiki |
- Update
<AssemblyVersion>/<FileVersion>inCHDMounter/CHDMounter.csproj,CHDMounter_Tester/CHDMounter_Tester.csprojandCHDMounter.Tests/CHDMounter.Tests.csproj. - Update
WhatsNew.md. - Commit and push a tag named
release_<version>(for examplerelease_1.2.2). - The release workflow packages the bundles and creates the GitHub release; the update checker in running clients picks up the new release automatically.
- Architecture
- Development Guide
- Installation — end-user installation