مشخصات مقاله
-
676
-
0.0
-
2023
-
0
-
0
ساخت MSBuild و project.json مربوط به .Net Core
MSBuild و project.json مربوط به .Net Core
.NET Core تصمیم گرفته است تا project.json را رها کند و به MSBuild و *.csproj برگردد. این همان اتفاقی است که قبلا در نسخه ی تازه منتشر شده ی تجهیزات .Net Core 2.0 preview1 رخ داده است. این اتفاق تا حدی نا امید کننده است؛ زیرا project.json نقطه ی امیدی در این زمینه بود. با این حال این کار قابل درک است و مزایای بسیاری نیز دارد.
حالا بیایید به مزایای این تغییر بپردازیم.
- این کار باعث گذار آسان راهکارهای فعلی ویژوال استودیو به .NET Core می شود. این کار تغییر بسیار بزرگی محسوب می شود و سرمایه گذاری فعلی در CI/RM حول MSBuild را افزایش می دهد.
- طی فرآیند ساخت در MSBuild امکان کامپایل پله ای، حل و فصل وابستگی ها در زمان ساخت، مدیریت پیکربندی و ... وجود دارد.
- برای آن که بتوان dotnet cli را به صورت تجاری منتقل کرد، کارهای زیادی باید انجام شود. زیرا dotnet cli دیگر صرفا ASP.NET Core را پوشش نمی دهد، بلکه برنامه های کنسول، برنامه های UWP و ... را نیز شامل می شود.
در ادامه می توانید تغییرات اعمال شده بر MSBuild و *.csproj را مشاهده کنید:
- MSBuild (*.csproj) جایگزین فایل Project.json (*.xproj) خواهد شد.
- امکانات project.json کم کم با امکانات *.csproj ادغام خواهند شد.
- هنوز مشخص نیست که چه اقداماتی قرار است در رابطه با لیست بسته ها انجام شود، اما به این امر اشاره شده است که ممکن است این لیست تحت nuget.json به صورت json حفظ شود و یا اینکه در *.csproj ادغام شود.
- احتمالا عمل گذار به صورت هموار و خودکار انجام خواهد شد. به شرط آن که از ویژوال استودیو استفاده شود.
مزایای MSBuild
- MSBuild اپن سورس است، در GitHub موجود است و قرار است کاملا چند پلتفرمی شود.
- MSBuild تا حد زیادی ساختار *.csproj را ساده سازی و ترمیم می کند.
-
مایکروسافت در حال معرفی سیستم پروژه ی جدیدی است که این سیستم بدون نیاز به ویژوال استودیو زمینه های بسیار زیادی را فراهم می کند. جزئیات آن را می توانید در این لینک مطالعه کنید:
https://github.com/dotnet/roslyn-project-system/ - هدف اینجا این است که حتی با وجود MSBuild بتوان با ساختارها کار کرد و پروژه بتواند چه داخل Visual Studio IDE و چه خارج از آن با کمترین نقص کار کند.
مقایسه ی MSBuild و project.json
حالا با اجرای دستور زیر پروژه ی کنسول جدیدی را به کمک .NET Core preview2 tooling ایجاد کنید.
dotnet new -t console
برای آن که بتوانید تمامی فایل های ایجاد شده در این پروژه را ببینید، دستور dir را اجرا کنید.
همان طور که می بینید، دو فایل Program.cs و project.json ایجاد شده اند.
حالا با اجرای دستور زیر برنامه ی کنسول جدیدی را به کمک .NET Core preview2 tooling ایجاد کنید.
dotnet new console
برای آن که بتوانید تمامی فایل های ایجاد شده در این پروژه را ببینید، دستور dir را اجرا کنید. همان طور که می بینید به جای فایل project.json فایل های Program.cs, NuGet.config و MSBuild.csproj ایجاد شده اند.
حالا بیایید دو فایل project.json و MSBuild.csproj را در کنار یکدیگر مقایسه کنیم.
در سمت چپ فرمت فایل ما json است. این در حالی است که در سمت راست فرمت این فایل XML است. همان طور که می بینید در فایل project.json و داخل بخش وابستگی ها netcoreapp1.0 وجود دارد. این در حالی است که در فایل MSBuild.csproj ، netcoreapp2.0 وجود دارد.