Retarget .NET Framework 4.7 to 4.7.1

Proprietary

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

OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.UpgradeToNetFramework471
mod run . --recipe=OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.UpgradeToNetFramework471

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. Retarget .NET Framework 4.6.2 to 4.7
  2. Change .NET Framework version
  3. Change .NET target framework
  4. Change web.config target framework
  5. Ensure csproj attestation
  6. Find SignedXml/CmsSigner usage (default hash SHA-1 → SHA-256)
  7. Find ServiceBase.Run usage (OnStart exception propagation)
  8. Find SerialPort usage (background-thread exception behavior)