เนื่องจากก่อนหน้านี้เคยเกริ่นเอาไว้ว่าถ้าหาก .NET 5 Release แล้ว เราก็จะมา Migrate กันให้เป็น .NET 5 กัน บทความนี้ก็เลยเป็นบทความเล็กๆ สำหรับ Migrate โปรเจคเพียงเท่านั้นครับ

เนื่องจากโปรเจคที่เราเริ่มเอาไว้แล้วยังไม่ได้มีความซับซ้อนอะไรมากมาย เลยทำให้สามารถ Migrate ขึ้น .NET 5 ได้ง่ายๆ ครับ โดยวิธีการมี ดังนี้

เริ่มแรกเราจะสร้างไฟล์ global.json สำหรับโปรเจคของเราก่อน เพื่อเป็นการกำหนดค่าเริ่มต้นของ SDK ให้กับโปรเจคของเรา โดยให้เปิด CLI ( PowerShell / WSL) และให้เข้าไปยัง Path ที่เก็บโปรเจคเอาไว้ (Path เดียวกับที่เก็บไฟล์ Todo.sln)

จากนั้นสร้างไฟล์ global.json ด้วยคำสั่ง

> dotnet new global.json

เมื่อกลับไปที่โฟลเดอร์ก็จะมีไฟล์ global.json ขึ้นมา ดังนี้

และเมื่อเปิดไฟล์ขึ้นมา ตัว SDK เองก็จะระบุเวอร์ชั่นเอาไว้ให้ ว่าจะใช้ .NET5 ดังภาพ

หาก Version ในไฟล์ยังคงเป็นเวอร์ชั่นของ .NET Core 3.1 ให้แก้เป็นเหมือนดังภาพข้างบน

จากนั้นเปิดโปรเจคของเราขึ้นมา จะเปิดด้วย VSCode หรือ Visual Studio ก็ได้ครับ จากนั้นให้ดับเบิ้ลคลิกที่ไฟล์โปรเจค Todo.API (.csproj) เพื่อเปิดโค๊ดขึ้นมา

โค๊ดในไฟล์ .csproj

ในส่วนของ PropertyGroup แรก จะมีบรรทัดแรก ที่เขียนว่า netcoreapp3.1 ให้เปลี่ยนเป็น net5.0

<PropertyGroup>
<!-- ของเดิมเป็น netcoreapp3.1 -->
<TargetFramework>netcoreapp3.1</TargetFramework><!-- เปลี่ยนเป็น net5.0 ซะ -->
<TargetFramework>net5.0</TargetFramework>

<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
เปลี่ยนจาก netcoreapp3.1 เป็น net5.0

และให้ทำแบบนี้กับโปรเจค Todo.Extensions (.csproj) ด้วย

สำหรับขั้นตอน่อไป ก็จะเป็นการอัพเดท Dependency Package ต่างๆ กันครับ โดยสำหรับ Microsoft.Extensions packages จากเดิมจะเป็นเวอร์ชั่น 3.1.9 เราก็จะเปลี่ยนเป็น 5.0.0 ครับ โดยเราจะเริ่มจากโปรเจค Todo.Extensions (.csproj) กันก่อนเลยครับ

อัพเดท Microsoft.Extensions จาก 3.1.9 เป็น 5.0.0

จากนั้นให้เปลี่ยนเลข Version ของ Microsoft.AspNetCore.Mvc.Versioning จากเดิม 4.1.1 เป็น 4.2.0

อัพเดท Microsoft.AspNetCore.Mvc.Versioning จาก 4.1.1 เป็น 4.2.0

หลังจากนั้นให้เซฟและลองสั่ง Restore Package ดู ตัวโปรเจค Todo.Extensions ก็จะเปลี่ยนเป็น .NET 5.0 แล้ว ขั้นตอนต่อไปก็จะไปทำกับตัวโปรเจค Todo.API(.csproj) กันต่อครับ

สำหรับโปรเจค Todo.API(.csproj) ของเดิมตัว Microsoft.EntityFrameworkCore จะเป็น 3.1.9 ก็ให้แก้ไขเป็น 5.0.0

อัพเดท Microsoft.EntityFrameworkCore จาก 3.1.9 เป็น 5.0.0

จากนั้นก็ให้เซฟ และสั่ง Restore pacakge ก็เป็นอันเสร็จสิ้นขั้นตอนการ Migrate
โปรเจคจาก .NET Core 3.1 ไปเป็น .NET 5.0 กันแล้วครับ เมื่อสั่งรันโปรเจคขึ้นมา ก็จะสามารถใช้งาน Swagger ได้เหมือนเดิมครับ

สำหรับบทความนี้ก็มีเพียงเท่านี้ครับ หวังว่าพอจะมีประโยชน์นะครับ หากผิดพลาดประการใดก็ขออภัยมา ณ ที่นี้ครับ

Reference:

https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-5.0&tabs=visual-studio

Source Code (todo-task-one-point-one) :

https://github.com/VatthanachaiW/todo-project.git