Retarget .NET Framework 4.7 to 4.7.1
OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.UpgradeToNetFramework471ArtifactOpenRewrite.Recipes.CSharp.Migration.DotnetRetargets a .NET Framework 4.7 project to 4.7.1. Updates <TargetFrameworkVersion> to v4.7.1, <TargetFramework> to net471, the app.config <supportedRuntime sku>, and the web.config targetFramework. Includes all earlier steps (4.0 -> 4.7). Notable retargeting changes at 4.7.1: accessibility/UIA improvements across WinForms, WPF, and ASP.NET controls turn on by default (Switch.UseLegacyAccessibilityFeatures=true to keep legacy behavior); SignedXml/SignedCms and PackageDigitalSignatureManager default hash algorithms move from SHA-1 to SHA-256 (Switch.System.Security.Cryptography.Xml.UseInsecureHashAlgorithms=true etc. to revert); ServiceBase.Run now propagates exceptions thrown from OnStart. See https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/retargeting/4.7.x.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.UpgradeToNetFramework471If the recipe isn’t available locally, install it with:
mod config recipes nuget install OpenRewrite.Recipes.CSharp.Migration.DotnetDefinition
This recipe runs the following recipes in order.
- Retarget .NET Framework 4.6.2 to 4.7
OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.UpgradeToNetFramework47 - Change .NET Framework version
OpenRewrite.CSharp.Recipes.ChangeDotNetFrameworkVersion - Change .NET target framework
OpenRewrite.CSharp.Recipes.ChangeDotNetTargetFramework - Change web.config target framework
OpenRewrite.CSharp.Recipes.ChangeWebConfigTargetFramework - Ensure csproj attestation
OpenRewrite.CSharp.Recipes.EnsureCsprojAttestation - Find
SignedXml/CmsSignerusage (default hash SHA-1 → SHA-256)OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.FindSignedXmlDefaultHash - Find
ServiceBase.Runusage (OnStart exception propagation)OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.FindServiceBaseRunOnStart - Find
SerialPortusage (background-thread exception behavior)OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.FindSerialPortThreadException