From ee2aa7a35ba27aa96538a6e2ac119ac3cde9daa6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:55:04 +0000 Subject: [PATCH 1/4] Initial plan From 5be00ceb787415a56f89434883e339776fbd98b2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 9 Feb 2026 15:58:44 +0000 Subject: [PATCH 2/4] Upgrade to .NET 8 and C# 12 - update project files and CI workflow Co-authored-by: tig <585482+tig@users.noreply.github.com> --- .github/workflows/dotnetcore.yml | 8 +++--- src/WinPrint.Console/WinPrint.Console.csproj | 14 +++++----- src/WinPrint.Core/WinPrint.Core.csproj | 28 +++++++++---------- .../WinPrint.LiteHtml.csproj | 8 +++--- .../WinPrint.WinForms.csproj | 6 ++-- .../WinPrint.Core.UnitTests.csproj | 12 ++++---- 6 files changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 397d8cb..1d68dfc 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -14,16 +14,16 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: # Checkout libvt100 & litehtml submodules: 'true' # Setup .NET - - name: Setup .NET Core - uses: actions/setup-dotnet@v1 + - name: Setup .NET + uses: actions/setup-dotnet@v4 with: - dotnet-version: 3.1.101 + dotnet-version: 8.0.x # Restore packages - name: Restore diff --git a/src/WinPrint.Console/WinPrint.Console.csproj b/src/WinPrint.Console/WinPrint.Console.csproj index 55b1148..668f8de 100644 --- a/src/WinPrint.Console/WinPrint.Console.csproj +++ b/src/WinPrint.Console/WinPrint.Console.csproj @@ -3,7 +3,7 @@ Exe - netcoreapp3.1 + net8.0 WinPrint.Console winprint Console App winprint @@ -21,16 +21,16 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - - + + diff --git a/src/WinPrint.Core/WinPrint.Core.csproj b/src/WinPrint.Core/WinPrint.Core.csproj index 70c5d75..6b8cf04 100644 --- a/src/WinPrint.Core/WinPrint.Core.csproj +++ b/src/WinPrint.Core/WinPrint.Core.csproj @@ -2,7 +2,7 @@ - netcoreapp3.1 + net8.0 AnyCPU;x64;x86 2.0.5.102 Kindel Systems @@ -12,7 +12,7 @@ Copyright Kindel Systems, LLC No release notes. https://github.com/tig/winprint - 8.0 + 12 @@ -36,20 +36,20 @@ - - - + + + - - - - - - - + + + + + + + - - + + diff --git a/src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj b/src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj index 830bfc7..4ab9b1e 100644 --- a/src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj +++ b/src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj @@ -2,7 +2,7 @@ - netcoreapp3.1 + net8.0 winprint LiteHtml WinPrint.LiteHtml @@ -42,9 +42,9 @@ - - - + + + diff --git a/src/WinPrint.WinForms/WinPrint.WinForms.csproj b/src/WinPrint.WinForms/WinPrint.WinForms.csproj index 94855c9..21f0c01 100644 --- a/src/WinPrint.WinForms/WinPrint.WinForms.csproj +++ b/src/WinPrint.WinForms/WinPrint.WinForms.csproj @@ -1,9 +1,9 @@  - + WinExe - netcoreapp3.1 + net8.0-windows true true WinPrint.Winforms.Program @@ -30,7 +30,7 @@ - + diff --git a/tests/WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj b/tests/WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj index 8588aa0..bc34ce1 100644 --- a/tests/WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj +++ b/tests/WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj @@ -1,20 +1,20 @@ - netcoreapp3.1 + net8.0 false - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive From 1396a08c879e7da448022b7779d4eb5cc108e1bc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 9 Feb 2026 16:04:19 +0000 Subject: [PATCH 3/4] Upgrade to .NET 10 and C# 12 - complete upgrade with builds and tests passing Co-authored-by: tig <585482+tig@users.noreply.github.com> --- .github/workflows/dotnetcore.yml | 2 +- src/WinPrint.Console/WinPrint.Console.csproj | 7 ++++--- src/WinPrint.Core/WinPrint.Core.csproj | 5 +++-- src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj | 3 ++- src/WinPrint.WinForms/WinPrint.WinForms.csproj | 5 +++-- .../WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj | 5 +++-- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 1d68dfc..e9587be 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -23,7 +23,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x # Restore packages - name: Restore diff --git a/src/WinPrint.Console/WinPrint.Console.csproj b/src/WinPrint.Console/WinPrint.Console.csproj index 668f8de..7a76ff7 100644 --- a/src/WinPrint.Console/WinPrint.Console.csproj +++ b/src/WinPrint.Console/WinPrint.Console.csproj @@ -3,11 +3,12 @@ Exe - net8.0 + net10.0-windows WinPrint.Console winprint Console App winprint + true 2.0.5.103 Kindel Systems @@ -29,7 +30,7 @@ - + @@ -53,7 +54,7 @@ - + diff --git a/src/WinPrint.Core/WinPrint.Core.csproj b/src/WinPrint.Core/WinPrint.Core.csproj index 6b8cf04..8e4200d 100644 --- a/src/WinPrint.Core/WinPrint.Core.csproj +++ b/src/WinPrint.Core/WinPrint.Core.csproj @@ -2,7 +2,7 @@ - net8.0 + net10.0-windows AnyCPU;x64;x86 2.0.5.102 Kindel Systems @@ -13,6 +13,7 @@ No release notes. https://github.com/tig/winprint 12 + true @@ -48,7 +49,7 @@ - + diff --git a/src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj b/src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj index 4ab9b1e..3bd1566 100644 --- a/src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj +++ b/src/WinPrint.LiteHtml/WinPrint.LiteHtml.csproj @@ -2,9 +2,10 @@ - net8.0 + net10.0-windows winprint LiteHtml WinPrint.LiteHtml + true 2.0.5.100 Kindel Systems diff --git a/src/WinPrint.WinForms/WinPrint.WinForms.csproj b/src/WinPrint.WinForms/WinPrint.WinForms.csproj index 21f0c01..0296f63 100644 --- a/src/WinPrint.WinForms/WinPrint.WinForms.csproj +++ b/src/WinPrint.WinForms/WinPrint.WinForms.csproj @@ -3,11 +3,12 @@ WinExe - net8.0-windows + net10.0-windows true true WinPrint.Winforms.Program Document.ico + true winprint GUI winprintgui @@ -54,7 +55,7 @@ - + diff --git a/tests/WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj b/tests/WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj index bc34ce1..8f7c2f6 100644 --- a/tests/WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj +++ b/tests/WinPrint.Core.UnitTests/WinPrint.Core.UnitTests.csproj @@ -1,7 +1,8 @@ - net8.0 + net10.0-windows + true false @@ -24,7 +25,7 @@ - + From 89d2ab5a890c23064d5f6cdb27c3ac8f17cee009 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 9 Feb 2026 16:06:04 +0000 Subject: [PATCH 4/4] Add upgrade notes documenting all changes and submodule requirements Co-authored-by: tig <585482+tig@users.noreply.github.com> --- UPGRADE_NOTES.md | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 UPGRADE_NOTES.md diff --git a/UPGRADE_NOTES.md b/UPGRADE_NOTES.md new file mode 100644 index 0000000..47f72b3 --- /dev/null +++ b/UPGRADE_NOTES.md @@ -0,0 +1,70 @@ +# .NET 10 and C# 12 Upgrade Notes + +## Completed Upgrades + +### Main Repository Projects + +All projects in the main repository have been successfully upgraded to .NET 10 and C# 12: + +- **WinPrint.Core**: netcoreapp3.1 → net10.0-windows, C# 8.0 → C# 12 +- **WinPrint.LiteHtml**: netcoreapp3.1 → net10.0-windows +- **WinPrint.Console**: netcoreapp3.1 → net10.0-windows +- **WinPrint.WinForms**: netcoreapp3.1 → net10.0-windows +- **WinPrint.Core.UnitTests**: netcoreapp3.1 → net10.0-windows + +### Package Updates + +Major package updates include: +- System.Linq.Dynamic.Core: 1.1.0 → 1.7.1 (fixes CVE vulnerability) +- PowerShell SDK: 7.0.0 → 7.4.0 +- Serilog: 2.9.1 → 4.0.0 +- xUnit: 2.4.1 → 2.7.0 +- Microsoft.NET.Test.Sdk: 16.6.1 → 17.9.0 +- System.Drawing.Common: 4.7.0 → 8.0.0 + +### Build System + +- GitHub Actions workflow updated to use .NET 10.0.x +- PostBuild events made cross-platform compatible with OS conditionals + +## Submodule Updates Required + +The following submodules need to be updated in their respective repositories: + +### 1. libvt100 (https://github.com/tig/libvt100.git) + +**File**: `src/libvt100.csproj` + +Changes made: +- SDK: Microsoft.NET.Sdk.WindowsDesktop → Microsoft.NET.Sdk +- TargetFrameworks: netcoreapp3.1 → net10.0;net10.0-windows (multi-target) +- LangVersion: 8.0 → 12 +- Added: EnableWindowsTargeting = true +- System.Drawing.Common: 4.7.0 → 8.0.0 +- Added conditional UseWindowsForms for net10.0-windows target + +**Reason**: The library needed multi-targeting to support both Windows and non-Windows builds. The net10.0 target allows the library to be referenced by cross-platform projects, while net10.0-windows provides Windows Forms support. + +### 2. PowershellAsync (https://github.com/tig/PowershellAsync.git) + +**File**: `PowerShellAsync/PowerShellAsync.csproj` + +Changes made: +- TargetFramework: netcoreapp3.1 → net10.0 +- System.Management.Automation: 7.0.0 → 7.4.0 + +**Reason**: Updated to support .NET 10 and latest PowerShell SDK. + +## Next Steps + +1. **For submodule owners**: The changes made to libvt100 and PowershellAsync should be committed to their respective repositories +2. **After submodule updates**: Update the submodule references in this repository to point to the new commits +3. **Testing**: Run full integration tests on Windows to ensure all functionality works correctly +4. **Optional**: Consider updating the installer project (currently uses .NET Framework 4.7.2) + +## Verification + +✅ All projects build successfully on Linux (CI environment) +✅ All unit tests pass +✅ Cross-platform build compatibility verified +✅ Security vulnerability in System.Linq.Dynamic.Core resolved