.NET Core - MSBuild และ project.json
NET Core ได้ตัดสินใจยกเลิก project.json และกลับไปที่ MSBuild และ * .csproj นี่คือสิ่งที่เกิดขึ้นแล้วในเครื่องมือ. Net Core 2.0 preview1 ที่เพิ่งเปิดตัว นี่เป็นเรื่องที่น่าผิดหวังพอสมควรเพราะ project.json นั้นได้สูดอากาศบริสุทธิ์ อย่างไรก็ตามเป็นเรื่องที่เข้าใจได้และมีข้อดีหลายประการเช่นกัน
ตอนนี้ให้เราพูดถึงข้อดีที่นำมาซึ่งการเปลี่ยนแปลง -
มันจะทำให้การเปลี่ยนโซลูชัน Visual Studio ที่มีอยู่เป็น. NET Core นั้นตรงไปตรงมา
ถือเป็นการเปลี่ยนแปลงครั้งใหญ่และยังช่วยให้สามารถใช้ประโยชน์จากการลงทุนที่มีอยู่ใน CI / RM โดยอ้างอิงจาก MSBuild
ระหว่างการสร้างใน MSBuild เราสามารถคิดถึงการคอมไพล์ที่เพิ่มขึ้นการแก้ไขการอ้างอิง buildtime การจัดการการกำหนดค่า ฯลฯ
จำเป็นต้องมีงานจำนวนมากในการจัดส่ง dotnet cli ให้ตรงเวลาเนื่องจากไม่ได้เป็นเพียงแค่ ASP.NET Core อีกต่อไป แต่ยังรวมถึงแอปคอนโซลแอป UWP เป็นต้น
ต่อไปนี้คือการเปลี่ยนแปลงใน MSBuild และ * .csproj -
ไฟล์ Project.json (* .xproj) จะถูกแทนที่ด้วย MSBuild (* .csproj)
ฟีเจอร์ใน project.json จะเริ่มรวมกลับเข้าไปใน * .csproj
ยังไม่ชัดเจนว่าพวกเขากำลังจะทำอะไรเกี่ยวกับรายการแพ็คเกจ แต่มีการกล่าวถึงว่าพวกเขาอาจเก็บไว้เป็น json ภายใต้ nuget.json หรือรวมเข้ากับไฟล์ *.csproj.
สมมติว่าการเปลี่ยนแปลงควรเป็นไปอย่างราบรื่นและอาจเป็นไปโดยอัตโนมัติหากใช้ Visual Studio
ข้อดีของ MSBuild
MSBuild เป็นโอเพ่นซอร์สและพร้อมใช้งานบน GitHub และจะกลายเป็นข้ามแพลตฟอร์มอย่างสมบูรณ์
MSBuild จะลดความซับซ้อนและตัดทอนโครงสร้างของไฟล์ *.csproj.
Microsoft ยังแนะนำระบบโครงการใหม่ซึ่งจะช่วยให้สามารถใช้งานได้หลายสถานการณ์โดยไม่จำเป็นต้องใช้ Visual Studio และรายละเอียดจะได้รับใน URL นี้ https://github.com/dotnet/roslyn-project-system/.
เป้าหมายคือแม้จะมีการตั้งค่า MSBuild แต่การทำงานกับบิวด์และโปรเจ็กต์ก็จะราบรื่นใน Visual Studio IDE เช่นเดียวกับภายนอก
MSBuild กับ project.json
ตอนนี้ให้เราสร้างโครงการคอนโซลใหม่ด้วยเครื่องมือ. NET Core preview2 โดยดำเนินการคำสั่งต่อไปนี้
dotnet new -t console
หากต้องการดูไฟล์ทั้งหมดที่สร้างขึ้นภายในโปรเจ็กต์นี้ให้เรียกใช้ไฟล์ dir คำสั่ง
คุณจะเห็นว่าไฟล์สองไฟล์ถูกสร้างขึ้น Program.cs และ project.json ไฟล์.
ตอนนี้ให้เราสร้างแอปคอนโซลด้วยเครื่องมือ. NET Core 2 preview1 โดยดำเนินการคำสั่งต่อไปนี้
dotnet new console
หากต้องการดูไฟล์ทั้งหมดที่สร้างขึ้นภายในโปรเจ็กต์นี้ให้เรียกใช้ไฟล์ dirคำสั่ง คุณจะเห็นว่าไฟล์สามไฟล์ถูกสร้างขึ้นProgram.cs, NuGet.config และ MSBuild.csproj แทนไฟล์ project.json
ตอนนี้ให้เราเปรียบเทียบ project.json และ MSBuild.csproj ไฟล์เคียงข้างกัน
ทางด้านซ้ายเรามีไฟล์ในรูปแบบ json ในขณะที่ทางด้านขวาไฟล์อยู่ในรูปแบบ XML คุณจะเห็นว่าในไฟล์ project.json ภายในส่วนการอ้างอิงมีไฟล์netcoreapp1.0ในขณะที่อยู่ในไฟล์ MSBuild.csproj คุณจะเห็นไฟล์ netcoreapp2.0.