Migrate .Net Framework to .Net Core

DOT NET FRAMEWORK CONVERSIONS

The “try-convert” tool migrates the .Net Framework project to .Net Core application. Microsoft provides multiple tools for conversion between different frameworks.

This article demonstrates how to convert a Console Application from .Net Framework to .Net Core.

Live Demo Steps for Migration

Prerequisites

Microsoft launched a dedicated extension to visualize or check if your application is portable to the other .Net Frameworks.

Check the below article on how to install and use the .Net Portability Analyzer.

View at Medium.com

Getting Started

Create a simple .Net Framework HelloWorld application from Visual Studio or Download the sample Github project

View at Medium.com

=> Install .Net Core SDK Link

Install the new tool via Dotnet SDK from the command line.

dotnet tool install -g try-convert

try-convert tool options

-p, --project <p>                 
The path to a project to convert
-w, --workspace <w>               
The solution or project file to operate on. If a project is not specified, the command will search the current directory for one.
-m, --msbuild-path <m>            
The path to an MSBuild.exe, if you prefer to use that
--target-framework, -tfm <tfm>    
The name of the framework you would like to upgrade to. If unspecified, the default TFM chosen will be the highest available one found on your machine.
--preview                         
Use preview SDKs as part of conversion
--diff-only                       
Produces a diff of the project to convert; no conversion is done
--no-backup                       
Converts projects and does not create a backup of the originals.
--keep-current-tfms               
Converts project files but does not change any TFMs. If unspecified, TFMs may change.

Let’s start the conversion

Go to .Net Framework project directory where the “.csproj” file exists and open a command prompt session in Administrator mode.

Firstly, .Net Framework gets converted into .Net Standard SDK, and from there, it’s turned into .Net Core framework.

Command to convert to .Net Standard

The below command will generate a new “.csproj” file of .Net standard type, whereas keeping the backup of .Net Framework file.

Project structure before migration: Targets 4.7 version

By default, backup is enabled but overridden using no backup option.

try-convert -p HelloWorldDotNetFramework.csproj

Project structure after migration: .Net Standard

An additional “.csproj” file will be created, and the previous file is renamed.

If you need to revert the migration changs, delete the newly created “.csproj” file and rename the file ending with the “.old” extension i.e., remove the “.old” extension from filename.

Convert to .Net Core Framework

Open the “.csproj” file in the editor and manually change the tagertFrameworkVersion to .Net Core version installed in local.

Save the file, run following commands in sequence.

dotnet build
dotnet run

If not sure about packages involved during migration, run below command to generate a detailed report before migration.

try-convert --diff-only

Thank you for reading. Keep visiting and share this in your network. Please put your thoughts and feedback in the comments section.

Follow me on LinkedIn Instagram Facebook Twitter.

Leave a comment