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