Retarget .NET Framework 4.0 to 4.5

Proprietary

Retargets a .NET Framework 4.0 project to 4.5. Updates <TargetFrameworkVersion> to v4.5 (legacy csproj), <TargetFramework> to net45 (SDK-style csproj), the <supportedRuntime sku> in app.config, and the targetFramework attribute in web.config. Retargeting to 4.5 enables RFC 3987 System.Uri parsing (stricter normalization/validation), C# 5 per-iteration foreach variable scoping, and obsoletes MachineKey.Encode/Decode (use MachineKey.Protect/Unprotect) and the System.Workflow.* (WF 3.x) types (use System.Activities.*). See https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/retargeting/4.5.x.

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

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. Change .NET Framework version
  2. Change .NET target framework
  3. Change web.config target framework
  4. Ensure csproj attestation
  5. Find obsolete MachineKey.Encode/Decode
  6. Find obsolete System.Workflow.* (WF 3.x) usage
  7. Find obsolete 5-argument EncoderParameter constructor
  8. Find System.Uri construction (RFC 3986/3987 parsing change)
  9. Find List<T>.ForEach modification-during-enumeration change