سلام دوستان
توی یکی از گروهها خوندم که میشه پروژه هایی که با Asp.net core 2.2 هست رو با انجام تغییراتی به Asp.net core 3 تبدیل کرد
آیا کسی میدونه چجوری میشه این کار رو انجام داد؟
سلام
بله شما میتونید پروزه خودتون که با Asp.net core 2.2 هست رو به Asp.net core 3 تبدیل کنید. برای این منظور باید مراحل زیر رو انجام بدید
در ابتدا اگر در پروژه شما از فایل global.json استفاده می کنید باید dot Net Core Sdk را در این فایل آپدیت کنید. دقت کنید برای آپدیت باید حتما SDK مربوط به Core 3 نصب باشد.
{
"sdk": {
"version": "3.0.100"
}
}
آپدیت کردن فایل پروژه
پروژه را با ویژوال استودیو 2019 باز کنید و روی نام پروژه در Solution Explorer دو بار کلیک کنید. مطابق تصویر زیر
فایل 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>
یکی از تفاوت های 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 تعریف شده است.
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
87
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2335
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
70
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
149
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1067
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
473
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1378
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4824
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
238
- پاسخ :
1
|
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
87
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2335
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
70
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2037
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
149
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1067
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
473
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
948
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1378
- پاسخ :
1
|