Skip to main content
Moderne OnlyThis recipe is proprietary to Moderne and runs on the Moderne platform or CLI — it isn’t part of the open-source catalog. Available with a Moderne subscription.Contact Sales

Retarget .NET Framework 4.5.2 to 4.6

Recipe IDOpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.UpgradeToNetFramework46
ArtifactOpenRewrite.Recipes.CSharp.Migration.Dotnet

Retargets a .NET Framework 4.5.2 project to 4.6. Updates <TargetFrameworkVersion> to v4.6, <TargetFramework> to net46, the app.config <supportedRuntime sku>, and the web.config targetFramework. Includes all earlier steps (4.0 -> 4.5.2). 4.6 is where <AppContextSwitchOverrides> is introduced. Notable retargeting changes: TLS now restricts to 1.0/1.1/1.2 and drops SSL3/RC4 (opt out via Switch.System.Net.DontEnableSchUseStrongCrypto=true); certificate EKU validation is added; CurrentCulture/CurrentUICulture flow across async tasks (Switch.System.Globalization.NoAsyncCurrentCulture=true); the 64-bit RyuJIT replaces the legacy JIT (<useLegacyJit enabled="1"/> to revert); XmlWriter throws on invalid surrogate pairs. The accompanying Find recipe flags ServicePointManager/TLS code for review. See https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/retargeting/4.6.x.

Composite recipeOpenRewritecsharpdotnetnet-frameworkmigrationModerne Proprietary License
Try in PlatformTry this recipe in the Moderne platform. Not a user yet? You’ll get a no-setup demo environment, with nothing to install or configure.

Usage

Run this recipe

In order to run C# recipes, you will need to use the Moderne CLI.

Once the CLI is installed, you can install this C# recipe package by running the following command:

Install the recipe package
mod config recipes nuget install OpenRewrite.Recipes.CSharp.Migration.Dotnet

Then, you can run the recipe via:

Run the recipe
mod run . --recipe OpenRewrite.Recipes.CSharp.Migration.Dotnet.NetFramework.UpgradeToNetFramework46