Retarget .NET Framework 4.6.1 to 4.6.2

Proprietary

Retargets a .NET Framework 4.6.1 project to 4.6.2. Updates <TargetFrameworkVersion> to v4.6.2, <TargetFramework> to net462, the app.config <supportedRuntime sku>, and the web.config targetFramework. Includes all earlier steps (4.0 -> 4.6.1). Notable retargeting changes at 4.6.2: path normalization defers to the OS and supports long (>260 char) paths (Switch.System.IO.UseLegacyPathHandling=true / Switch.System.IO.BlockLongPaths=true to revert); ClaimsIdentity ctors clone the Actor (Switch.System.Security.ClaimsIdentity.SetActorAsReferenceWhenCopyingClaimsIdentity=true); RSACng accepts non-standard key sizes and SignedXml.GetPublicKey returns RSACng. Two changes need manual review (no switch): HttpRuntime.AppDomainAppPath may throw NullReferenceException, and RSACng.ImportParameters no longer throws on odd key sizes. See https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/retargeting/4.6.x.

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

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 to 4.6.1
  2. Change .NET Framework version
  3. Change .NET target framework
  4. Change web.config target framework
  5. Ensure csproj attestation
  6. Find System.IO.Path normalization change
  7. Find ClaimsIdentity Actor clone-on-copy change
  8. Find HttpRuntime.AppDomainAppPath (exception type change)
  9. Find RSACng usage (non-standard key size behavior)