Net4x.Project2015To2017.Core 4.2.0.26262

dotnet add package Net4x.Project2015To2017.Core --version 4.2.0.26262
                    
NuGet\Install-Package Net4x.Project2015To2017.Core -Version 4.2.0.26262
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Net4x.Project2015To2017.Core" Version="4.2.0.26262" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Net4x.Project2015To2017.Core" Version="4.2.0.26262" />
                    
Directory.Packages.props
<PackageReference Include="Net4x.Project2015To2017.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Net4x.Project2015To2017.Core --version 4.2.0.26262
                    
#r "nuget: Net4x.Project2015To2017.Core, 4.2.0.26262"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Net4x.Project2015To2017.Core@4.2.0.26262
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Net4x.Project2015To2017.Core&version=4.2.0.26262
                    
Install as a Cake Addin
#tool nuget:?package=Net4x.Project2015To2017.Core&version=4.2.0.26262
                    
Install as a Cake Tool

Net4x.Project2015To2017.Core

Core object model and engine behind CsprojToVs2017 — the tool that converts legacy (VS2015-era) MSBuild project files to the modern SDK-style format.

This package contains no migration policy of its own. It provides the project model, the readers, the writer, the transformation pipeline and the analysis infrastructure. The actual sets of transformations for a given Visual Studio generation live in Net4x.Project2015To2017.Migrate2017.Library and Net4x.Project2015To2017.Migrate2019.Library.

Installation

dotnet add package Net4x.Project2015To2017.Core

Target frameworks: netstandard2.0, net461, net8.0

What's in it

Area Types
Project model Project, Solution, AssemblyAttributes, PackageConfiguration, AssemblyReference, PackageReference, ProjectReference, ApplicationType
Reading ProjectReader, SolutionReader, ProjectPropertiesReader, AssemblyInfoReader, NuSpecReader, plus a conditional-expression evaluator for MSBuild Condition attributes
Writing ProjectWriter, ProjectWriteOptions (backup creation, custom source-control hooks)
Transformation pipeline ITransformation, ITransformationSet, ITransformationWithDependencies, ITransformationWithTargetMoment, BasicTransformationSet, ChainTransformationSet, NoopTransformationSet
Built-in transforms AssemblyAttributeTransformation, NuGetPackageTransformation, PropertySimplificationTransformation, PropertyDeduplicationTransformation, TargetFrameworkReplaceTransformation, ServiceFilterTransformation, EmptyGroupRemoveTransformation, and the BasicReadTransformationSet / BasicSimplifyTransformationSet bundles
Analysis Analyzer<,>, AnalysisOptions, DiagnosticSet, DiagnosticBase, IReporter<>, LoggerReporter, and the baseline diagnostics W001 (illegal project type), W002 (missing project file), W010 (configurations mismatch), W011 (unsupported conditional)
Conversion control ProjectConverter, ConversionOptions, UnsupportedProjectTypes, UnsupportedProjectReason
Caching IProjectCache, DefaultProjectCache, NoProjectCache

Transformation execution order

Transformations do not run in declaration order. Each one may declare:

  • an execution moment (TargetTransformationExecutionMoment: Early, Normal, Late) via ITransformationWithTargetMoment, and
  • dependencies on other transformations via ITransformationWithDependencies.

The engine performs a topological sort within each moment, so custom transformations can be mixed freely with the standard ones and still land in the right place.

Writing a custom transformation

using System.Linq;
using Project2015To2017;
using Project2015To2017.Definition;
using Project2015To2017.Transforms;

public sealed class RemoveObsoletePropertyTransformation : ITransformation
{
    public void Transform(Project definition)
    {
        foreach (var property in definition.PropertyGroups.ElementsAnyNamespace("MyObsoleteProperty").ToList())
        {
            property.Remove();
        }
    }
}

Bundle it into a set and chain it with a standard set:

var set = new ChainTransformationSet(
    Vs16TransformationSet.Instance,                       // from the Migrate2019 library package
    new BasicTransformationSet(new RemoveObsoletePropertyTransformation()));

Logging

Every entry point takes a Microsoft.Extensions.Logging.ILogger. Pass NoopLogger.Instance if you want the pipeline to stay silent.

Dependencies

Microsoft.CodeAnalysis.CSharp, NuGet.Configuration, Microsoft.Extensions.Logging.Abstractions, System.Memory.

  • Net4x.Project2015To2017.Base — MigrationFacility, the high-level orchestration entry point
  • Net4x.Project2015To2017.Migrate2017.Library — VS2017 (VS15) transformation and diagnostic sets
  • Net4x.Project2015To2017.Migrate2019.Library — VS2019 (VS16) transformation and diagnostic sets
  • Net4x.Project2015To2017.Migrate2019.Tool — dotnet migrate-2019 global tool
  • Net4x.Project2015To2017.Mcp.Server — MCP server exposing migration to AI agents

License

MIT. Copyright Hans van Bakel. See LICENSE.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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 Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 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. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on Net4x.Project2015To2017.Core:

Package Downloads
Net4x.Project2015To2017.Migrate2017.Library

Tool for converting a MSBuild project file to VS2017 format and beyond.

Net4x.Project2015To2017.Base

Tool for converting a MSBuild project file to VS2017 format and beyond.

Net4x.Project2015To2017.Migrate2019.Tool

Tool for converting a MSBuild project file to VS2017 format and beyond.

Net4x.Project2015To2017.Migrate2019.Library

Tool for converting a MSBuild project file to VS2017 format and beyond.

Net4x.Project2015To2017.Migrate2017.Tool

Tool for converting a MSBuild project file to VS2017 format and beyond.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.2.0.26262 267 9/19/2026