Skip to content

Update to .NET10 - #6591

Open
Flor Chacón (florelis) wants to merge 1 commit into
microsoft:masterfrom
florelis:net10
Open

Flor Chacón (florelis) wants to merge 1 commit into
microsoft:masterfrom
florelis:net10

Conversation

@florelis

@florelis Flor Chacón (florelis) commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

📖 Description

🔗 References

🔍 Validation

✅ Checklist

🤖 AI Assistance

  • AI assistance was used and has been disclosed in this PR
  • No AI assistance was used

📋 Issue Type

  • Bug fix
  • Feature
  • Task
Microsoft Reviewers: Open in CodeFlow

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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.

RootModule = if ($PSEdition -like 'Core')
{
"net8.0-windows10.0.26100.0\Microsoft.WinGet.Client.Cmdlets.dll"
"net10.0-windows10.0.26100.0\Microsoft.WinGet.Client.Cmdlets.dll"
<PropertyGroup>
<!-- Keep in sync with attributes in AssemblyInfo.cs -->
<TargetFramework>net8.0-windows10.0.26100</TargetFramework>
<TargetFramework>net10.0-windows10.0.26100</TargetFramework>

@ranm-msft ranm-msft left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.csproj picks up a UTF-8 BOM in this change. Probably an editor artifact rather than intent.
  • That same project moves to net10.0-windows7.0 while its siblings move to a bare net10.0-windows. Worth confirming the explicit platform version is deliberate there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants