.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.