Project2015To2017.Cli 3.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global Project2015To2017.Cli --version 3.0.0                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Project2015To2017.Cli --version 3.0.0                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Project2015To2017.Cli&version=3.0.0                
nuke :add-package Project2015To2017.Cli --version 3.0.0                

Build status NuGet Version NuGet Downloads Global Tool NuGet Version Global Tool NuGet Downloads

Convert your old project files to the new 2017 format

With the introduction of Visual Studio 2017, Microsoft added some optimizations to how a project file can be set up. However, no tooling was made available that performed this conversion as it was not necessary to do since Visual Studio 2017 would work with the old format too.

This project converts an existing csproj to the new format, shortening the project file and using all the nice new features that are part of Visual Studio 2017.

What does it fix?

There are a number of things that VS2017 handles differently that are performed by this tool:

  1. Include files using a wildcard as opposed to specifying every single file
  2. A more succinct way of defining project references
  3. A more succinct way of handling NuGet package references
  4. Moving some of the attributes that used to be defined in AssemblyInfo.cs into the project file
  5. Defining the NuGet package definition as part of the project file

How it works

As a Net Core Global Tool

Assuming you have net core 2.1 installed you can run this on the command line: dotnet tool install Project2015To2017.Cli --global This will install the tool for you to use it anywhere you would like. You can then call the tool as shown in the examples below.

As a normal file download

Using the tool is simple, it is a simple command line utility that has a single argument being the project file, solution file or folder you would like to convert. When you give it a directory path, the tool will discover all csproj files nested in it.

Examples

Below examples are for the global tool, for the normal file just replace csproj-to-2017 with your executable.

csproj-to-2017 "D:\Path\To\My\TestProject.csproj"

Or

csproj-to-2017 "D:\Path\To\My\TestProject.sln"

Or

csproj-to-2017 "D:\Path\To\My\Directory"

After confirming this is an old style project file, it will start performing the conversion. When it has gathered all the data it needs it first creates a backup of the old files and puts them into a backup folder and then generates a new project file in the new format.

Flags

  • --dry-run will not update any files, just outputs all the messages
  • --no-backup will not create a backup folder
  • --assembly-info keep Assembly Info in a file
  • --target-frameworks specific target frameworks
  • --output-path will not create a subfolder with the target framework in the output path
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 was computed.  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. 
.NET Core netcoreapp2.1 is compatible.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 2.1

    • No dependencies.
Version Downloads Last updated
4.1.0-beta.4 334 7/19/2019
4.1.0-beta.3 286 6/27/2019
4.1.0-beta.2 320 6/2/2019
4.0.0 3,879 3/10/2019
4.0.0-rc2 590 2/12/2019
4.0.0-rc1 518 1/26/2019
3.0.10 823 1/12/2019
3.0.9 745 1/9/2019
3.0.8 747 1/5/2019
3.0.7 747 1/5/2019
3.0.6 880 11/28/2018
3.0.5 811 11/13/2018
3.0.4 770 10/25/2018
3.0.3 790 10/24/2018
3.0.2 950 9/17/2018
3.0.1 957 9/8/2018
3.0.0 995 8/29/2018
2.0.0 919 8/26/2018
2.0.0-rc2 754 8/23/2018
2.0.0-rc1 764 8/22/2018
1.8.1 1,035 8/13/2018
1.8.0 894 8/13/2018
1.7.0 886 7/26/2018
1.0.1 831 7/25/2018