Use reviewed portable runtime identifiers in one SDK project

Proprietary

Maps exact win10-x64/x86 aliases to win-x64/x86 and ubuntu-x64, ubuntu.16.04-x64, ubuntu.18.04-x64, debian.8-x64, debian.9-x64 and centos.7-x64 to linux-x64, retaining portable osx-x64 and plural empty-slot trivia while deduplicating literal lists in stable order in one explicitly selected .NET 8/9/10 project. Requires manual native asset, publish path and supported OS minimum review. Unknown RIDs and policies are skipped. Does not preserve support for the old operating systems or establish native asset equivalence.

OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.PortableRuntimeIdentifiers

Required

Exact captured relative .csproj path, without globs.

Default false. Confirm review of the complete project/reference graph, packages and native assets, ancestor/environment/CI policy outside this snapshot, command line RIDs, RID conditions and publish consumers/output paths. Confirm all final hosts use supported .NET 8/9/10 SDK/runtime/OS combinations and the changed platform minimum is accepted. Confirm no uncaptured imported/package build policy overrides target frameworks, RID lists or the default portable graph.

Optional

Optional exact captured relative path to the pinned Azure PublishAllRids.targets contract documented with this recipe. Only that exact file content and an unconditional literal import are admitted; other nonempty imports are skipped. Review the reduced publish fan-out and renamed output directories before setting this option.

RegenerateMarkerBoolean

Default true. Intermediate composition may defer to a final EnsureCsprojAttestation.

mod run . --recipe=OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net8.PortableRuntimeIdentifiers \ -P ExactProjectPath=src/Agent/Linux/Agent.Linux.csproj \ -P RuntimeAssetsReviewed=false

Install it once, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.

Recipe list

It runs these recipes, in this order.

  1. Ensure csproj attestation