ในช่วงการพัฒนาของ .NET Core tooling จนถึงปัจจุบัน มี design/component หลายอย่างที่มีการเปลี่ยนแปลงในลักษณะที่ไม่ compatible กับ version ก่อนหน้า หรือยกเลิกการใช้งาน หนึ่งในนั้นก็คือ project config file ที่เริ่มต้นใช้รูปแบบ json ซึ่งอยู่ใน file ที่ชื่อ project.json แต่ปัจจุบัน เปลี่ยนมาใช้ MSBuild/csproj format การ migration project.json ไปสู่ .csproj format ทำได้ด้วยกันสองวิธีคือ Visual Studio 2017 dotnet migrate command-line tool ทั้งสองวิธีใช้กลไกการทำงานเดียวกัน ซึ่งผลที่ได้จะเหมือนกัน Visual Studio 2017 เปิด project โดยเปิด file .xproj ใน Visual Studio 2017 จะปรากฎ One-way upgrade dialog ขึ้นมาให้เลือก OK, Visual Studio จะทำการ migrate โดย file ที่ถูก migrate (project.json, global.json, .xproj) จะถูกย้ายไปสำรองไว้ใน folder Backup dotnet migrate ใช้ command-line เข้าไปที่ folder ที่เก็บ project และใช้คำสั่ง dotnet migrate ซึ่งจะทำการ migrate โดย file ที่ถูก migrate (project.json, global.json, .xproj) จะถูกย้ายไปสำรองไว้ใน folder Backup <Project Sdk=”Microsoft.NET.Sdk”> … </Project> ข้อแตกต่างระหว่าง project.json กับ csproj format ( อยู่ในรูปแบบ XML-based ซึ่งมี root node ระบุ sdk ที่ใช้คือ Microsoft.NET.Sdk สำหรับ web project sdk ที่ใช้คือ Microsoft.NET.Sdk.Web ) มีดังนี้ Common options ****** JSON format ****** { “name”: “MyProjectName”, “version”: “1.0.0-alpha-*”, “authors”: [ “name1”, “name2” ], “company”: “PSU”, “language”: “en-US”, “title”: “My library”, “description”: “This is my library.”, “copyright”: “PSU 3000”, “userSecretsId”: “xyz123” } ****** csproj format ****** <PropertyGroup> <AssemblyName>MyProjectName</AssemblyName> <PackageId>MyProjectName</PackageId> <VersionPrefix>1.0.0</VersionPrefix> <VersionSuffix>alpha</VersionSuffix> <Authors>name1;name2</Authors> <Company>PSU</Company> <NeutralLanguage>en-US</NeutralLanguage> <AssemblyTitle>My library</AssemblyTitle> <Description>This is my library.</Description> <Copyright>PSU 3000</Copyright> <UserSecretsId>xyz123</UserSecretsId> </PropertyGroup> frameworks ****** JSON format ****** { “frameworks”: { “netcoreapp1.0”: {}, “net451”: {} } } ****** csproj format ****** <PropertyGroup> <TargetFrameworks>netcoreapp1.0;net451</TargetFrameworks>