Migrate .NET Core 2.1 to .NET 5.0

Migrate .NET Core 2.1 to .NET 5.0

Hadi projemizi .Net 5'e yükseltirken neler yapmalıyız bir göz atalım

Sırasıyla aşağıdaki adımlayı uyguluyoruz :

Kurulum

Visual Studio 2019 kurulumunu yapıyoruz. .Net Core 3.1 ve üzeri için kurulması gerekli. (Link 1)

.Net 5 SDK kurulumunu yapıyoruz. (Link 2)

Directory.Build.Props

Projemize ait Directory.Build.Props'u güncelliyoruz. 

- <TargetFramework>netcoreapp2.1</TargetFramework>
+ <TargetFramework>net5.0</TargetFramework>

 

Projemizde kullandığımız paketlerimizi Nuget yardımıyla güncelliyoruz.

Nuget Package Manager

 

.vscode/launch.json

Visual Studio Code ait launch.json'ı güncelliyoruz.

.vscode/launch.json:

-   "program": "${workspaceRoot}/src/projectname/bin/Debug/netcoreapp2.1/projectname.dll",
+   "program": "${workspaceRoot}/src/projectname/bin/Debug/net5.0/projectname.dll",
    

 

Startup.cs'de JsonSerializer blogunu değiştiriyoruz. Newtonsoft kullanıyorsanız update etmeniz gerekir. Onun yerine "System.Text.Json.Serialization" kullanabilirsiniz.

 
 //services.AddMvc().AddJsonOptions(opt => opt.SerializerSettings.ContractResolver = new DefaultContractResolver());            
services.AddControllersWithViews().AddJsonOptions(options =>
              {
                  options.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
                  options.JsonSerializerOptions.PropertyNamingPolicy = null;
                  options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
              });

 

Startup.cs'de UseMVC() fonksiyonunu kullanmak istiyorsanız "EnableEndpointRouting" prop'u pasif etmelisiniz. Farklı bir yöntem olarak ise Endpointleri kullanabilirsiniz.

  
 app.UseMvc();
 services.AddMvc(options => options.EnableEndpointRouting = false);

 //app.UseMvc();
 app.UseEndpoints(endpoints => {
      endpoints.MapControllers();
   });

 

 

 

Startup.cs'de IsDevelopment() fonksiyonun kullanıldığı "IHostingEnvironment" interface yerine "IWebHostEnvironment" interface kullanmanız daha iyi olur.

  
if (env.EnvironmentName.Equals("Development"))
{
     app.UseDeveloperExceptionPage();
}

 

PublishProfiles/deploy.pubxml

Publish yaptığımız profili de son olarak güncelliyoruz.

PublishProfiles/deploy.pubxml

- <PublishFramework>netcoreapp2.1</PublishFramework>
+ <PublishFramework>net5.0</PublishFramework>

 

Böylece projemizi başarılı bir şekilde .net5'e yükseltmiş olduk. Bol kodlu günler :)

 


Winners focus on winning, losers focus on winners! 👨 💻 🎧

Yorum ekle