Migrate to .NET 6
Recipe ID
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UpgradeToDotNet6ArtifactOpenRewrite.Recipes.CSharp.Migration.DotnetMigrate C# projects to .NET 6, applying necessary API changes for obsoleted cryptographic types and other breaking changes. Includes all .NET Core 3.0, 3.1, and .NET 5 migration steps. See https://learn.microsoft.com/en-us/dotnet/core/compatibility/6.0.
Composite recipecsharpdotnetmigrationProprietary
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.Net6.UpgradeToDotNet6If 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.
- Migrate to .NET 5
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net5.UpgradeToDotNet5 - Change .NET target framework
OpenRewrite.CSharp.Recipes.ChangeDotNetTargetFramework - Upgrade NuGet package version
OpenRewrite.CSharp.Recipes.UpgradeNuGetPackageVersion - Upgrade NuGet package version
OpenRewrite.CSharp.Recipes.UpgradeNuGetPackageVersion - Upgrade NuGet package version
OpenRewrite.CSharp.Recipes.UpgradeNuGetPackageVersion - Upgrade NuGet package version
OpenRewrite.CSharp.Recipes.UpgradeNuGetPackageVersion - Upgrade NuGet package version
OpenRewrite.CSharp.Recipes.UpgradeNuGetPackageVersion - Ensure csproj attestation
OpenRewrite.CSharp.Recipes.EnsureCsprojAttestation - Replace internal
FormattedLogValueswith a type aliasOpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.ReplaceFormattedLogValues - Cast
RedisValuetostringforJsonSerializer.DeserializeOpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.CastRedisValueForJsonDeserialize - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Change type
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeType - Use factory method for abstract cryptographic types
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseCryptoFactoryMethods - Change method name
OpenRewrite.Recipes.CSharp.Migration.Dotnet.ChangeMethodName - Delete method argument
OpenRewrite.Recipes.CSharp.Migration.Dotnet.DeleteMethodArgument - Find
WebRequest/HttpWebRequest/WebClientusage (SYSLIB0014)OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindWebRequest - Find
Thread.Abortusage (SYSLIB0006)OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindThreadAbort - Find
JsonSerializerOptions.IgnoreNullValuesusage (SYSLIB0020)OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindIgnoreNullValues - Find
X509Certificate2.PrivateKeyusage (SYSLIB0028)OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindX509PrivateKey - Find
Assembly.CodeBase/EscapedCodeBaseusage (SYSLIB0012)OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.FindAssemblyCodeBase - Use Environment.ProcessId
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseEnvironmentProcessId - Use Environment.CurrentManagedThreadId
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseEnvironmentCurrentManagedThreadId - Use Environment.ProcessPath
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseEnvironmentProcessPath - Use LINQ MaxBy() and MinBy()
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseLinqMaxMinBy - Use LINQ DistinctBy()
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseLinqDistinctBy - Use Random.Shared
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseRandomShared - Use ArgumentNullException.ThrowIfNull()
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseThrowIfNull - Use string.Contains(char) overload
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseStringContainsChar - Use string.StartsWith(char)/EndsWith(char) overload
OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net6.UseStringStartsEndsWithChar