Repository navigation
Update to .NET10 - #6591
Update to .NET10#6591Flor Chacón (florelis) wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The PowerShell modules become unloadable on PowerShell versions that their manifests still claim to support.
2 open findings
What changed in this PR
Retargets managed WinGet components, tools, tests, PowerShell modules, and samples from .NET 8 to .NET 10.
Changes:
- Updates managed project target frameworks to .NET 10.
- Adjusts build, packaging, and test paths for new framework output directories.
- Updates PowerShell module assembly selection.
| File | Description |
|---|---|
templates/jobs-build.yml |
Updates artifact paths to .NET 10. |
src/WinGetUtilInterop.UnitTests/WinGetUtilInterop.UnitTests.csproj |
Retargets interop tests. |
src/WinGetTestCommon/WinGetTestCommon.csproj |
Retargets shared test library. |
src/WinGetSourceCreator/WinGetSourceCreator.csproj |
Retargets source-creation tool. |
src/WinGetMCPServer/WinGetMCPServer.csproj |
Retargets MCP server. |
src/PowerShell/scripts/Initialize-LocalWinGetModules.ps1 |
Updates local module paths. |
src/PowerShell/Microsoft.WinGet.UnitTests/Microsoft.WinGet.UnitTests.csproj |
Retargets PowerShell tests. |
src/PowerShell/Microsoft.WinGet.Configuration.Engine/Microsoft.WinGet.Configuration.Engine.csproj |
Retargets configuration engine. |
src/PowerShell/Microsoft.WinGet.Configuration.Cmdlets/Microsoft.WinGet.Configuration.Cmdlets.csproj |
Retargets configuration cmdlets. |
src/PowerShell/Microsoft.WinGet.Client/ModuleFiles/Microsoft.WinGet.Client.psd1 |
Selects the .NET 10 Core assembly. |
src/PowerShell/Microsoft.WinGet.Client.Engine/Microsoft.WinGet.Client.Engine.csproj |
Retargets client engine. |
src/PowerShell/Microsoft.WinGet.Client.Cmdlets/Microsoft.WinGet.Client.Cmdlets.csproj |
Retargets client cmdlets. |
src/Microsoft.Management.Deployment.Projection/Microsoft.Management.Deployment.Projection.csproj |
Retargets deployment projection. |
src/Microsoft.Management.Deployment.CsWinRTProjection/Microsoft.Management.Deployment.CsWinRTProjection.csproj |
Retargets CsWinRT projection. |
src/Microsoft.Management.Configuration.UnitTests/Microsoft.Management.Configuration.UnitTests.csproj |
Retargets configuration tests. |
src/Microsoft.Management.Configuration.UnitTests/Helpers/OutOfProcAttribute.cs |
Updates documented test path. |
src/Microsoft.Management.Configuration.Projection/Microsoft.Management.Configuration.Projection.csproj |
Retargets configuration projection. |
src/Microsoft.Management.Configuration.Processor/Microsoft.Management.Configuration.Processor.csproj |
Retargets configuration processor. |
src/Microsoft.Management.Configuration.OutOfProc/Run-ConfigurationOOPTests.ps1 |
Updates out-of-process test path. |
src/Microsoft.Management.Configuration.OutOfProc/Prepare-ConfigurationOOPTests.ps1 |
Updates test preparation paths. |
src/LocalhostWebServer/LocalhostWebServer.csproj |
Retargets local test server. |
src/IndexCreationTool/IndexCreationTool.csproj |
Retargets index tool. |
src/ConfigurationRemotingServer/ConfigurationRemotingServer.csproj |
Retargets remoting server. |
src/AppInstallerCLIPackage/AppInstallerCLIPackage.wapproj |
Packages .NET 10 remoting output. |
src/AppInstallerCLIE2ETests/AppInstallerCLIE2ETests.csproj |
Retargets end-to-end tests. |
samples/MinimalCallers/C#/WinGet-OutOfProc/C#_WinGet_OutOfProc.csproj |
Retargets WinGet sample. |
samples/MinimalCallers/C#/WinGet-InProc/C#_WinGet_InProc.csproj |
Retargets WinGet sample. |
samples/MinimalCallers/C#/Configuration-OutOfProc/C#_Configuration_OutOfProc.csproj |
Retargets configuration sample. |
samples/MinimalCallers/C#/Configuration-InProc/C#_Configuration_InProc.csproj |
Retargets configuration sample. |
samples/ConnectionValidationSample/ConnectionValidationSample.csproj |
Retargets validation sample. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
ranm-msft
left a comment
There was a problem hiding this comment.
Approving. Read all 30 files: exactly 72 changed lines, all net8.0 to net10.0 token substitutions. I specifically checked that the hardcoded TFM path strings move in lockstep with the TFM in their owning csproj, and they do.
Two non-blocking nits:
AppInstallerCLIE2ETests.csprojpicks up a UTF-8 BOM in this change. Probably an editor artifact rather than intent.- That same project moves to
net10.0-windows7.0while its siblings move to a barenet10.0-windows. Worth confirming the explicit platform version is deliberate there.
ranm-msft
left a comment
There was a problem hiding this comment.
One build-graph issue I missed in my earlier review needs resolving before this retarget is ready.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ranm-msft
left a comment
There was a problem hiding this comment.
Thanks, the current head addresses the reported compile and host-compatibility issues: the manifests now reflect the supported PowerShell hosts, and the embedded CsWinRT build removes the conflicting WinRT.Runtime.dll reference. The current x64, x86, and PowerShell validation is green. I am leaving this as a comment rather than an approval pending independent domain-owner validation of the runtime rollout.

📖 Description
🔗 References
🔍 Validation
✅ Checklist
🤖 AI Assistance
📋 Issue Type
Microsoft Reviewers: Open in CodeFlow