Repository navigation
Closed
Labels
Area-PlatformsTarget frameworks, SDKs, reference packs, languagesTarget frameworks, SDKs, reference packs, languagesbreakingA change that can require customers to modify their code, build or configurationA change that can require customers to modify their code, build or configuration
Milestone
Description
Add net11.0 to the build and packaging definitions, and remove net6.0, net8.0 and net9.0, which are out of Microsoft support when 2027.0 ships. The platform baseline is PB-2027.0, specified in Documentation/PlatformSupport.md in postsharp/PostSharp.
Breaking change
net6.0, net8.0 and net9.0 are no longer supported user target frameworks, and the packages no longer ship lib/ assets for them.
- A project that targets one of these frameworks resolves the
netstandard2.0asset when the package has one. PostSharp.Patterns.Xamlhas nonetstandard2.0asset. A Windows Presentation Foundation application on .NET 8 or .NET 9 therefore finds no compatible asset.PostSharp.Patterns.Threadinghas the same limitation for its Windows-specific assets.- The .NET 8 and .NET 9 SDKs are no longer supported at build time. The minimum is the .NET 10 SDK.
Upgrade to net10.0 or net11.0.
What was done
Root.Defs.props:- Adds
Net110TfmandNet110WindowsTfmto theTfmitems, andnet11.0to theFullframework set. - Declares the .NET SDKs 10.0 (floor) and 11.0 (ceiling), with their minimal build numbers and compatible runtimes. The .NET 8.0 and 9.0 SDK entries are removed.
- Reduces the in-job runtime fan-out to .NET 10.0 and 11.0.
- Adds
Build/PostSharp.Dll.propsmapsnet11.0andnet11.0-*to thenet10.0assembly.- The NuGet packages ship no
net6.0,net8.0ornet9.0asset. Thelib/net10.0assets servenet11.0users, so nonet11.0asset is added (rule 8 ofPlatformSupport.md). The .NET tools move fromtools/net8.0totools/net10.0. Prepare.projdefaults to the .NET 10 SDK, andglobal.jsonpins 10.0.100.- The build images are generated from
eng/src/Program.csby PostSharp.Engineering. They install the .NET 10.0.100 and 11.0.100-rc.1 SDKs.- SDK 6.0 is not kept. The runtime fan-out follows the supported runtimes,
net10.0andnet11.0, so nothing executes onnet6.0.
- SDK 6.0 is not kept. The runtime fan-out follows the supported runtimes,
Implemented in postsharp/PostSharp#99. Stale documentation removed in postsharp/PostSharp#132.
Verification
The distribution is tested by PostSharp.Tests.DotNetSdk. It builds net10.0 and net11.0 applications with the .NET 10 and 11 SDKs on Windows and Linux, x64 and ARM64: postsharp/PostSharp.Tests.DotNetSdk#3.
Follow-up
- The .NET 11 release-candidate versions in
Root.Defs.propsmove to the released build when .NET 11 ships (item 2 ofDocumentation/PB-2027.0-TODO.md).
— Claude for Gael
Metadata
Metadata
Assignees
Labels
Area-PlatformsTarget frameworks, SDKs, reference packs, languagesTarget frameworks, SDKs, reference packs, languagesbreakingA change that can require customers to modify their code, build or configurationA change that can require customers to modify their code, build or configuration
Type
Projects
- StatusShow more project fieldsDone
Activity
gfraiteur commentedon Sep 25, 2026
Verified against
develop/2027.0at bad48810cf. The scope is implemented by postsharp/PostSharp#99:Root.Defs.propsdefinesNet110TfmandNet110WindowsTfm, aNetSdk11.0 entry andNetRuntime11.0 entries. The .NET 8.0 and 9.0 SDK entries are removed. The runtime fan-out isnet10.0andnet11.0only.Build/PostSharp.Dll.propsmapsnet11.0andnet11.0-*to thenet10.0assembly.net6.0,net8.0ornet9.0asset. Alib/net10.0asset servesnet11.0users, so there is nonet11.0asset (rule 8 ofDocumentation/PlatformSupport.md).Prepare.projdefaults to the .NET 10 SDK, andglobal.jsonpins 10.0.100.eng/src/Program.cs, not kept undereng/dockerfiles. They install the .NET 10.0.100 and 11.0.100-rc.1 SDKs.Two points differ from the text above:
net10.0andnet11.0, so nothing executes onnet6.0any more.net6.0,net8.0andnet9.0user target frameworks is a breaking change for users.Documentation/PlatformSupport.mdrecords it as such, and the most affected package isPostSharp.Patterns.Xaml, which has nonetstandard2.0asset.The distribution is tested by PostSharp.Tests.DotNetSdk, which builds
net10.0andnet11.0applications with the .NET 10 and 11 SDKs (postsharp/PostSharp.Tests.DotNetSdk#3, 96 of 96 jobs passed). postsharp/PostSharp#132 removes the documents that still described the former in-repo distribution tests.Remaining work outside this issue: the .NET 11 release-candidate versions in
Root.Defs.propsmove to the released build when .NET 11 ships (item 2 ofDocumentation/PB-2027.0-TODO.md).— Claude for Gael
gfraiteur commentedon Sep 29, 2026
Released in PostSharp 2027.0.1-preview.
— Claude for Gael