دسته بندی ها
01:13 1398/08/21

تبدیل پروژه نوشته شده با Asp.net core 2 به Asp.net core 3

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 510     رتبه کاربر : 4
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 4277
پاسخ دهنده : pedram_khan 01:42 1398/08/21

سلام

بله شما میتونید پروزه خودتون که با Asp.net core 2.2 هست رو به Asp.net core 3 تبدیل کنید. برای این منظور باید مراحل زیر رو انجام بدید

 

پیش نیازهای تبدیل Asp.net core 2.2 به Asp.net core 3

  1. ویژوال استودیو 2019
  2. نصب بودن Dot Net Core SDK 3.0

 

در ابتدا اگر در پروژه شما از فایل global.json استفاده می کنید باید dot Net Core Sdk را در این فایل آپدیت کنید. دقت کنید برای آپدیت باید حتما SDK مربوط به Core 3 نصب باشد.

{
  "sdk": {
    "version": "3.0.100"
  }
}

 

آپدیت کردن فایل پروژه

پروژه را با ویژوال استودیو 2019 باز کنید و روی نام پروژه در Solution Explorer دو بار کلیک کنید. مطابق تصویر زیر

تبدیل پروژه asp.net core 2 به asp.net core 3

فایل projectname.csproj باز می شود. در حال حاضر شما TargetFramework را 2.2 می بینید

 

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

 

این گزینه را به 3.0 تغییر دهید

 

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

در فایل projectname.csproj مربوط به core 2.2 تعداد زیادی پکیج مشاهده خواهید کرد که به صورت پیش فرض و از ابتدا در پروژه موجود بوده است. این پکیج ها در تگ Itemgroup موجود می باشند. به عنوان مثال کدهای زیر نمونه ای از پکیج های موجود در یک پروژه از Core 2.2 می باشد

 

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>


  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App"/>
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
  </ItemGroup>

</Project>

 

اما در Core 3.0 این پکیج ها وجود ندارد و شما باید همه این موارد را حذف کنید. کدهای زیر مربوط به فایل projectname.csproj کور 3 می باشد:

 

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

</Project>

 

تفاوت Asp.net core 2.2 و Asp.net core 3.0

یکی از تفاوت های Core 2.2 با Core 3 هنگام اضافه کردن پکیج های مورد نیاز از nuget در این می باشد که در Core 2.2 شما هر پکیجی که اضافه می کنید در تگ Content اضافه می شود. اما در نسخه 3 در تگ PackageReference

در مجموع برای تبدیل یک پروژه ساده که با Asp.net core 2.2 نوشته شده است به نسخه Core 3.0 مراحل بالا باید انجام بگیرد. اما اگر در پروژه شما مواردی مثل Identity یا Routing یا ... هم وجود دارد توصیه می کنم این لینک را کامل مطالعه بفرمایید.

 

در Asp.net core 3 تعریف Route در فایل startup.cs به شکل زیر می باشد

 

     app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapAreaControllerRoute(
                    "AdminPanel",
                    "AdminPanel",
                    "AdminPanel/{controller=AdminHome}/{action=Index}/{id?}");
                endpoints.MapControllerRoute(
                    "default", "{controller=Home}/{action=Index}/{id?}");
            });

 

در مثال بالا یک مسیر عادی از نوع MVC تعریف شده که نام آن default می باشد و یک مسیر هم برای Area با نام AdminPanel تعریف شده است.

ویرایش شده در یکشنبه 23 خرداد 1400 ساعت 12:11:44
به این پاسخ امتیاز بدهید    1
امتیاز: 274 رتبه: 6
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود