On March 7th Visual Studio 2017 was released bring the ASP.NET Core tools preview. ASP.NET Core 1.1.1 was also released. This post is going to cover converting the project from my MailGun post from being project.json based to csproj as well as migrating from the project from ASP.NET Core 1.0.2 to 1.1.1. Here is the project as it stood before I made any changes.
Visual Studio 2017
The first step is to get a version of Visual Studio 2017 (VS 2017) installed. The download page can be found here. Make sure to grab the community edition if you are looking for a free fully-featured IDE option. Check out this blog post from Microsoft on the many new features Visual Studio 2017 brings.
The installer for VS 2017 has changed a lot from previous versions. The way it works now is you select the workload you use and it only installs the bit it has to to keep the size of install down. The following is a screen shot from my install. I have a lot more workloads checked that is needed for just an ASP.NET Core application. At a minimum make sure the “ASP.NET and web development” workload gets installed. If you are interested in cross-platform development scroll to the bottom and also check “.NET Core cross-platform development”.
When you open the solution in VS 2017 it will prompt you to do a one-way upgrade.
After the conversion is complete a migration report will open. Below is mine. I had no issues, but if there were any this report should give you some idea of how they should be addressed.
As part of the conversion process, the following file changes happened.
Deleted: global.json ASP.NET-Core-Email.xproj project.json Added: ASP.NET-Core-Email.csproj
That is all there is to the conversion. The tooling takes care of it all and your project should keep work just as before. The sample project post conversion can be found here.
Migration from 1.0.x to 1.1.1
The migration is almost as simple as the project conversion. In the solution explorer right click on the project to be migrated and select Properties.
Find the Target framework selection and select .NETCoreApp 1.1. Then save your solution.
Next, open the NuGet Package Manager. It can be by right click on the project and selecting Manage NuGet Packages or from the Tools > NuGet Package Manager > Manage NuGet Packages for Solution.
Select the Updates tab and update all the related packages to 1.1.1 and click the Update button.
If you want a specific list of all the package changes check out the associated commit.
The only other change needed is in the constructor of the Startup class.
Before: builder.AddUserSecrets(); After: builder.AddUserSecrets<Startup>();
After all the changes above your solution will be on the latest released bits. Having been following releases since beta 4 I can tell you this is one of the easiest migration so far. I may be partial, but .NET and Microsoft seem to be getting better and better over the last couple of years.
I am going to leave you with a few related links.
ASP.NET Core 1.1.1 Release Notes
Announcing New ASP.NET Core and Web Dev Feature in VS 2017
Project File Tools – Extension for IntelliSense in csproj
Razor Language Services – Extension for tag helper Intellisense