Net4x.Project2015To2017.Migrate2019.Tool
4.2.0.26262
dotnet add package Net4x.Project2015To2017.Migrate2019.Tool --version 4.2.0.26262
NuGet\Install-Package Net4x.Project2015To2017.Migrate2019.Tool -Version 4.2.0.26262
<PackageReference Include="Net4x.Project2015To2017.Migrate2019.Tool" Version="4.2.0.26262" />
<PackageVersion Include="Net4x.Project2015To2017.Migrate2019.Tool" Version="4.2.0.26262" />
<PackageReference Include="Net4x.Project2015To2017.Migrate2019.Tool" />
paket add Net4x.Project2015To2017.Migrate2019.Tool --version 4.2.0.26262
#r "nuget: Net4x.Project2015To2017.Migrate2019.Tool, 4.2.0.26262"
#:package Net4x.Project2015To2017.Migrate2019.Tool@4.2.0.26262
#addin nuget:?package=Net4x.Project2015To2017.Migrate2019.Tool&version=4.2.0.26262
#tool nuget:?package=Net4x.Project2015To2017.Migrate2019.Tool&version=4.2.0.26262
Net4x.Project2015To2017.Migrate2019.Tool
.NET global tool that converts legacy (VS2015-era) MSBuild project files to the modern SDK-style format used by Visual Studio 2019 and later. Part of CsprojToVs2017.
Installation
dotnet tool install --global Net4x.Project2015To2017.Migrate2019.Tool
Requires the .NET 8 runtime. The tool is invoked as dotnet migrate-2019.
To migrate to VS2017 conventions instead, install Net4x.Project2015To2017.Migrate2017.Tool, which
provides dotnet migrate-2017 with a few small behavioural differences for older Visual Studio
versions.
Quick start
dotnet migrate-2019 wizard "D:\Path\To\My\TestProject.csproj"
dotnet migrate-2019 wizard "D:\Path\To\My\TestProject.sln"
dotnet migrate-2019 wizard .\MyProjectDirectory
dotnet migrate-2019 wizard **\*
The wizard is interactive and walks you through the conversion, offering to create backups before every critical stage.
Paths are optional. With no arguments the tool searches the current directory; if there is exactly one convertible project or solution it uses it, otherwise it tells you why it cannot decide safely.
What it fixes
VS2017 and later handle several things differently. The tool:
- Replaces per-file
Compileentries with wildcard includes - Rewrites project references in the succinct modern form
- Converts
packages.configtoPackageReference - Folds
AssemblyInfo.csattributes into the project file - Moves the NuGet package definition into the project file
- Selects the right project SDK —
Microsoft.NET.Sdk.WindowsDesktopfor WPF/WinForms,MSBuild.Sdk.Extrasfor Xamarin and UAP
Commands
| Command | Description |
|---|---|
wizard |
Interactive conversion wizard (recommended — it runs the others in the right order) |
migrate |
Non-interactive migration, for scripts and advanced users |
evaluate |
Report what migration would do, without changing anything |
analyze |
Run diagnostics against the project files, no conversion |
Options
| Option | Applies to | Description |
|---|---|---|
-t\|--target-frameworks <frameworks> |
migrate, evaluate |
Override the target frameworks in the output project file |
-ft\|--force-transformations <names> |
migrate |
Force specific transformations to run regardless of project conversion state |
-f\|--force |
migrate, evaluate, wizard |
Convert project types otherwise considered unsupported (e.g. Entity Framework, ASP.NET) |
-a\|--keep-assembly-info |
migrate, evaluate, wizard |
Keep AssemblyInfo.cs instead of folding attributes into the project file |
-o\|--old-output-path |
migrate |
Do not append the target framework to the output path |
-n\|--no-backup |
migrate |
Skip creating the Backup directory (useful when the solution is under source control) |
-v\|--verbosity <LEVEL> |
all | q[uiet], m[inimal], n[ormal], d[etailed], diag[nostic] |
-h\|--help |
all | Show help for the command |
Not every option applies to every command — check dotnet migrate-2019 <command> --help.
Repeat an option to pass multiple values:
dotnet migrate-2019 migrate -t net40 -t net45
Migrating from your own code
For programmatic control, use Net4x.Project2015To2017.Migrate2019.Library and
Net4x.Project2015To2017.Base directly rather than shelling out to this tool.
Related packages
Net4x.Project2015To2017.Migrate2017.Tool—dotnet migrate-2017, the VS2017 equivalentNet4x.Project2015To2017.Migrate2019.Library— the VS2019 transformation and diagnostic setsNet4x.Project2015To2017.Base—MigrationFacility, the high-level orchestration entry pointNet4x.Project2015To2017.Core— project model, readers, writer, transformation and analysis engineNet4x.Project2015To2017.Mcp.Server— the same operations exposed to AI agents over MCP
License
MIT. Copyright Hans van Bakel. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
-
.NETFramework 4.6.1
- DotNet.Glob (>= 3.0.5)
- Net4x.Project2015To2017.Base (>= 4.2.0.26262)
- Net4x.Project2015To2017.Core (>= 4.2.0.26262)
- Net4x.Project2015To2017.Migrate2019.Library (>= 4.2.0.26262)
- Serilog (>= 2.8.0)
- Serilog.Enrichers.Demystify (>= 1.0.0-dev-00019)
- Serilog.Extensions.Logging (>= 2.0.4)
- Serilog.Sinks.Console (>= 3.1.1)
-
net8.0
- DotNet.Glob (>= 3.0.5)
- Net4x.Project2015To2017.Base (>= 4.2.0.26262)
- Net4x.Project2015To2017.Core (>= 4.2.0.26262)
- Net4x.Project2015To2017.Migrate2019.Library (>= 4.2.0.26262)
- Serilog (>= 2.8.0)
- Serilog.Enrichers.Demystify (>= 1.0.0-dev-00019)
- Serilog.Extensions.Logging (>= 2.0.4)
- Serilog.Sinks.Console (>= 3.1.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Net4x.Project2015To2017.Migrate2019.Tool:
| Package | Downloads |
|---|---|
|
Net4x.NugetLibrary
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.2.0.26262 | 162 | 9/19/2026 |