Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
07e7132
chore(config): cleanup for .NET 10 retarget (#53)
Jun 10, 2026
9085468
feat(libs): migrate library TFMs from net461 to net48 (#53)
Jun 10, 2026
aee9a26
feat(gui): retarget GUI to .NET 10 (#53)
Jun 10, 2026
f8344e7
feat(cli): retarget CLI to .NET 10 (#53)
Jun 10, 2026
512c480
feat(ci): update CI, tests, and NuGet packages for .NET 10 (#53)
Jun 10, 2026
41ebe56
fix(ci): use windows-2025 runner with MSBuild 18 for .NET 10 + C++ su…
Jun 10, 2026
272af1b
fix(ci): bump C++/CLI test project to .NET Framework 4.8 (#53)
Jun 10, 2026
23e8bf2
fix(ci): run tests per-project to avoid vcxproj dotnet CLI incompatib…
Jun 10, 2026
e7756eb
test(cli): add end-to-end CLI integration tests (#53)
Jun 10, 2026
ec272ff
docs(readme): add build prerequisites and target framework table (#53)
Jun 10, 2026
76fe902
fix(ci): bump SampleApp fixture and ClrProtection.Test to net48 (#53)
Jun 10, 2026
717448c
feat(ci): add Coverlet code coverage with ReportGenerator HTML report…
Jun 10, 2026
c4b5f6d
test(gui): add FlaUI WPF smoke tests and fix Runtime.dll deployment (…
Jun 10, 2026
85b7df3
feat(ci): show coverage report in PR comments and job summary (#53)
Jun 10, 2026
ffcce2f
chore(ci): split CI into build and test workflows, add CONTRIBUTING.m…
Jun 10, 2026
3fe4389
style: apply dotnet format to entire solution, add format CI check (#53)
Jun 10, 2026
068f704
chore: add .gitattributes for consistent line endings (#53)
Jun 10, 2026
5af83c0
test: add cross-framework integration tests (#73)
Jun 10, 2026
06bd5cb
test: add WinForms net6/net8, Library net48/net6 cross-framework test…
Jun 10, 2026
f4ac080
fix(test): exclude test subjects from Coverlet instrumentation (#73)
Jun 10, 2026
ef7b052
fix(ci): install .NET 6 and 8 runtimes for cross-framework tests (#73)
Jun 10, 2026
ab3523f
test: add WPF net6/net8, Library net10 — complete cross-framework mat…
Jun 10, 2026
9ceb345
Merge pull request #75 from mcpolo99/feat/cross-framework-tests
mcpolo99 Jun 10, 2026
30a1df3
feat(ci): improve test reporting with per-project results and PR comm…
Jun 10, 2026
e9029aa
feat(ci): use TRX logger for accurate test results with per-test brea…
Jun 10, 2026
66f33c3
chore: add scripts/clean.sh for local build artifact cleanup (#53)
Jun 10, 2026
192929d
chore: rename clean.sh to clean-build-artifacts.sh
Jun 10, 2026
152f98d
fix: clean-build-artifacts.sh now properly cleans Tests/ directories
Jun 10, 2026
1c7fef0
fix(ci): remove duplicate --results-directory causing all tests to fa…
Jun 10, 2026
fae2377
perf(ci): cache NuGet packages across CI runs (#53)
Jun 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
46 changes: 45 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,45 @@
*.cs diff=csharp
# Set default behavior, in case users don't have core.autocrlf set.
* text=auto

# Explicitly declare text files we want to always be normalized and converted
# to native line endings on checkout.
*.config text
*.cs text diff=csharp
*.manifest text
*.md text
*.resx text
*.txt text
*.xml text
*.xaml text
*.yml text
*.yaml text
*.json text
*.props text
*.targets text

# Declare files that will always have CRLF line endings on checkout.
*.csproj text eol=crlf
*.dbproj text eol=crlf
*.fsproj text eol=crlf
*.inf text eol=crlf
*.lsproj text eol=crlf
*.modelproj text eol=crlf
*.sln text eol=crlf
*.sqlproj text eol=crlf
*.vbproj text eol=crlf
*.vcproj text eol=crlf
*.vcxproj text eol=crlf
*.wixproj text eol=crlf
*.wmaproj text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.apk binary
*.dll binary
*.exe binary
*.ico binary
*.jpeg binary
*.jpg binary
*.otf binary
*.pdf binary
*.png binary
*.snk binary
33 changes: 17 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ on:

jobs:
build:
runs-on: windows-2022
timeout-minutes: 15
runs-on: windows-2025
timeout-minutes: 10
env:
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
steps:
- uses: actions/checkout@v5
with:
Expand All @@ -18,14 +20,13 @@ jobs:
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2

- name: Install .NET 4.6.1 targeting pack
shell: pwsh
run: |
$url = 'https://download.microsoft.com/download/F/1/D/F1DEB8DB-D277-4EF9-9F48-3A65D4D8F965/NDP461-DevPack-KB3105179-ENU.exe'
$installer = "$env:TEMP\ndp461-devpack.exe"
Invoke-WebRequest -Uri $url -OutFile $installer -UseBasicParsing
Start-Process -FilePath $installer -ArgumentList '/quiet','/norestart' -Wait
Write-Host "Installed .NET 4.6.1 Developer Pack"
- name: Cache NuGet packages
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/*.vcxproj') }}
restore-keys: |
${{ runner.os }}-nuget-

- name: Install nbgv
run: dotnet tool install -g nbgv
Expand All @@ -47,15 +48,15 @@ jobs:
- name: Package CLI
shell: pwsh
run: |
$src = 'Confuser.CLI/bin/Release/net461'
$src = 'Confuser.CLI/bin/Release/net10.0'
$zip = 'ConfuserEx-CLI.zip'
Get-ChildItem $src -Exclude '*.pdb','*.xml' | Compress-Archive -DestinationPath $zip
Write-Host "Created $zip ($([math]::Round((Get-Item $zip).Length / 1MB, 1)) MB)"

- name: Package GUI
shell: pwsh
run: |
$src = 'ConfuserEx/bin/Release/net461'
$src = 'ConfuserEx/bin/Release/net10.0-windows'
$zip = 'ConfuserEx-GUI.zip'
Get-ChildItem $src -Exclude '*.pdb','*.xml' | Compress-Archive -DestinationPath $zip
Write-Host "Created $zip ($([math]::Round((Get-Item $zip).Length / 1MB, 1)) MB)"
Expand All @@ -66,8 +67,8 @@ jobs:
$zip = 'ConfuserEx.zip'
$tmp = 'combined'
New-Item -ItemType Directory -Path $tmp -Force | Out-Null
Copy-Item 'Confuser.CLI/bin/Release/net461/*' $tmp -Exclude '*.pdb','*.xml' -Recurse
Copy-Item 'ConfuserEx/bin/Release/net461/*' $tmp -Exclude '*.pdb','*.xml' -Recurse -Force
Copy-Item 'Confuser.CLI/bin/Release/net10.0/*' $tmp -Exclude '*.pdb','*.xml' -Recurse
Copy-Item 'ConfuserEx/bin/Release/net10.0-windows/*' $tmp -Exclude '*.pdb','*.xml' -Recurse -Force
Get-ChildItem $tmp | Compress-Archive -DestinationPath $zip
Remove-Item $tmp -Recurse -Force
Write-Host "Created $zip ($([math]::Round((Get-Item $zip).Length / 1MB, 1)) MB)"
Expand All @@ -86,7 +87,7 @@ jobs:
pre-release:
needs: build
if: github.event_name == 'push' && github.ref == 'refs/heads/pre-release'
runs-on: windows-2022
runs-on: windows-2025
timeout-minutes: 5
permissions:
contents: write
Expand Down Expand Up @@ -136,7 +137,7 @@ jobs:
release:
needs: build
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
runs-on: windows-2022
runs-on: windows-2025
timeout-minutes: 5
permissions:
contents: write
Expand Down
34 changes: 34 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: format

on:
pull_request:
branches: [master, pre-release]

jobs:
check-format:
runs-on: windows-2025
timeout-minutes: 5
permissions:
contents: read
steps:
- uses: actions/checkout@v5

- name: Check formatting
run: dotnet format Confuser2.sln --verify-no-changes --verbosity diagnostic
continue-on-error: true
id: format-check

- name: Format diff
if: steps.format-check.outcome == 'failure'
shell: pwsh
run: |
dotnet format Confuser2.sln
git diff --stat
$diff = git diff --name-only
if ($diff) {
Write-Host "::warning::The following files need formatting:" -ForegroundColor Yellow
$diff | ForEach-Object { Write-Host " $_" }
Write-Host ""
Write-Host "Run 'dotnet format Confuser2.sln' locally and commit the changes."
exit 1
}
Loading
Loading