Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Razoruzantılı .cshtml dosyalar, SDKRazor hem derleme hem de yayımlama zamanında derlenir. Çalışma zamanı derlemesi isteğe bağlı olarak projeyi yapılandırarak etkinleştirilebilir.
Not
Çalışma zamanı derlemesi:
- .NET 10'dan başlayarak kullanım dışı kaldı.
- Uygulama bileşenleri Razor için Blazor desteklenmez.
- Genel kullanım yönergelerini desteklemez.
- Örtük kullanım yönergelerini desteklemez.
- .NET Çalışırken Yeniden Yükleme devre dışı bırakır.
- Üretim senaryoları için önerilmez.
Üretim senaryoları için varsayılan derleme zamanı derlemesini kullanın. Geliştirme senaryoları için Anında Yeniden Yükleme'yi kullanın. Daha fazla bilgi için bkz Razor . Çalışma zamanı derlemesi kullanımdan kaldırıldı.
Razor derleme
Dosyaların derleme zamanı ve yayımlama zamanı derlemesi Razor , SDK tarafından Razor varsayılan olarak etkinleştirilir. Çalışma zamanı derlemesi etkinleştirildiğinde derleme zamanı derlemesini tamamlar Razor ve uygulama çalışırken düzenlendiklerinde dosyaların güncelleştirilebilmesini sağlar.
Uygulama çalışırken geliştirme sırasında görünümlerin ve Sayfaların güncelleştirilmesi Razor de .NET Çalışırken Yeniden YüklemeRazordesteklenir.
Not
Razor .NET 10'dan başlayarak çalışma zamanı derlemesi kullanım dışı bırakıldı. Etkinleştirildiğinde, çalışma zamanı derlemesi .NET Çalışırken Yeniden Yükleme devre dışı bırakır. Geliştirme senaryoları için alternatif olarak Anında Yeniden Yükleme kullanmanızı öneririz. Daha fazla bilgi için bkz Razor . Çalışma zamanı derlemesi kullanımdan kaldırıldı.
Tüm ortamlar için çalışma zamanı derlemesini etkinleştirme
Tüm ortamlar için çalışma zamanı derlemesini etkinleştirmek için:
Microsoft.AspNetCore.Mvc'yi yükleyin.Razor. RuntimeCompilation NuGet paketi.
çağrısıAddRazorRuntimeCompilation:
Program.csvar builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages() .AddRazorRuntimeCompilation();
Çalışma zamanı derlemesini koşullu olarak etkinleştirme
Çalışma zamanı derlemesi koşullu olarak etkinleştirilebilir ve bu da yayımlanan çıkışın şu şekilde olmasını sağlar:
- Derlenmiş görünümleri kullanır.
- Üretimde dosya izleyicilerini etkinleştirmez.
Yalnızca Development ortamı için çalışma zamanı derlemesini etkinleştirmek üzere:
Microsoft.AspNetCore.Mvc'yi yükleyin.Razor. RuntimeCompilation NuGet paketi.
AddRazorRuntimeCompilation Geçerli ortam Geliştirme olarak ayarlandığında çağrısı
Program.csyapma:var builder = WebApplication.CreateBuilder(args); var mvcBuilder = builder.Services.AddRazorPages(); if (builder.Environment.IsDevelopment()) { mvcBuilder.AddRazorRuntimeCompilation(); }
Çalışma zamanı derlemesi bir barındırma başlatma derlemesi ile de etkinleştirilebilir. Belirli başlatma profilleri için Development ortamında çalışma zamanı derlemesini etkinleştirmek için:
- Microsoft.AspNetCore.Mvc'yi yükleyin.Razor. RuntimeCompilation NuGet paketi.
- başlatma profilinin
environmentVariablesbölümünde değişikliklaunchSettings.jsonyapma:değerinin
ASPNETCORE_ENVIRONMENTolarak ayarlandığını"Development"doğrulayın.ASPNETCORE_HOSTINGSTARTUPASSEMBLIESseçeneğini"Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"olarak ayarlayın. Örneğin, aşağıdakilerlaunchSettings.jsonveViewCompilationSamplebaşlatma profilleri için çalışma zamanı derlemesiniIIS Expressetkinleştirir:{ "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:7098", "sslPort": 44332 } }, "profiles": { "ViewCompilationSample": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:7173;http://localhost:5251", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" } }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" } } } }
Bu yaklaşımla, içinde Program.cskod değişikliği gerekmez. çalışma zamanında, ASP.NET Core içinde derleme düzeyinde bir Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation arar.
HostingStartup özniteliği yürütülecek uygulama başlangıç kodunu belirtir ve bu başlangıç kodu çalışma zamanı derlemesini etkinleştirir.
Sınıf kitaplığı için çalışma zamanı derlemesini Razor etkinleştirme
Pages projesinin MyClassLibRazorbir sınıf kitaplığına (RCL) başvurdığı Razor bir senaryo düşünün. RCL, MVC ve _Layout.cshtml Pages projeleri tarafından kullanılan bir Razor dosya içerir. Bu RCL'deki dosya için çalışma zamanı derlemesini _Layout.cshtml etkinleştirmek için Sayfalar projesinde Razor aşağıdaki değişiklikleri yapın:
Çalışma zamanı derlemesini koşullu olarak etkinleştirme başlığındaki yönergelerle çalışma zamanı derlemesini etkinleştirin.
içinde MvcRazorRuntimeCompilationOptionsyapılandırın
Program.cs:var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages(); builder.Services.Configure<MvcRazorRuntimeCompilationOptions>(options => { var libraryPath = Path.GetFullPath( Path.Combine(builder.Environment.ContentRootPath, "..", "MyClassLib")); options.FileProviders.Add(new PhysicalFileProvider(libraryPath)); });Yukarıdaki kod MyClassLib RCL için mutlak bir yol oluşturur. PhysicalFileProvider API'si, bu mutlak yolda dizinleri ve dosyaları bulmak için kullanılır. Son olarak örnek,
PhysicalFileProviderRCL'nin.cshtmldosyalarına erişim sağlayan bir dosya sağlayıcıları koleksiyonuna eklenir.
Ek kaynaklar
Razoruzantılı .cshtml dosyalar, SDKRazor hem derleme hem de yayımlama zamanında derlenir. Çalışma zamanı derlemesi, projenizi yapılandırarak isteğe bağlı olarak etkinleştirilebilir.
Razor derleme
Dosyaların derleme zamanı ve yayımlama zamanı derlemesi Razor , SDK tarafından Razor varsayılan olarak etkinleştirilir. Çalışma zamanı derlemesi etkinleştirildiğinde derleme zamanı derlemesini tamamlayarak Razor dosyaların düzenlendikleri takdirde güncelleştirilebilmesini sağlar.
Proje oluşturma sırasında çalışma zamanı derlemesini etkinleştirme
Razor Sayfalar ve MVC proje şablonları, proje oluşturulduğunda çalışma zamanı derlemesini etkinleştirme seçeneği içerir. Bu seçenek ASP.NET Core 3.1 veya sonraki sürümlerinde desteklenir.
Yeni ASP.NET Core web uygulaması oluştur iletişim kutusunda:
- Web Uygulaması veya Web Uygulaması (Model-Görünüm-Denetleyici) proje şablonunu seçin.
- Çalışma zamanı derlemesini Razor etkinleştir onay kutusunu seçin.
Var olan bir projede çalışma zamanı derlemesini etkinleştirme
Var olan bir projedeki tüm ortamlar için çalışma zamanı derlemesini etkinleştirmek için:
Microsoft.AspNetCore.Mvc'yi yükleyin.Razor. RuntimeCompilation NuGet paketi.
projenin
Startup.ConfigureServicesyöntemini çağrısı içerecek şekilde AddRazorRuntimeCompilationgüncelleştirin. Örneğin:public void ConfigureServices(IServiceCollection services) { services.AddRazorPages() .AddRazorRuntimeCompilation(); // code omitted for brevity }
Var olan bir projede çalışma zamanı derlemesini koşullu olarak etkinleştirme
Çalışma zamanı derlemesi, yalnızca yerel geliştirme için kullanılabilir olacak şekilde etkinleştirilebilir. Koşullu olarak bu şekilde etkinleştirme, yayımlanan çıkışın sağlanmasını sağlar:
- Derlenmiş görünümleri kullanır.
- Üretimde dosya izleyicilerini etkinleştirmez.
Çalışma zamanı derlemeyi sadece Development ortamında etkinleştirmek için:
- Microsoft.AspNetCore.Mvc'yi yükleyin.Razor. RuntimeCompilation NuGet paketi.
- içindeki
environmentVariablesbaşlatma profililaunchSettings.jsonbölümünü değiştirin:- Doğrula'nın olarak
ASPNETCORE_ENVIRONMENTayarlandığını doğrulayın"Development". -
ASPNETCORE_HOSTINGSTARTUPASSEMBLIESseçeneğini"Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"olarak ayarlayın.
- Doğrula'nın olarak
Aşağıdaki örnekte, çalışma zamanı derlemesi Development ve IIS Express başlatma profilleri için RazorPagesApp ortamında etkinleştirilir.
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:57676",
"sslPort": 44364
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
}
},
"RazorPagesApp": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
}
}
}
}
Projenin Startup sınıfında kod değişikliği gerekmez. çalışma zamanında, ASP.NET Core içinde derleme düzeyinde bir Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation arar.
HostingStartup özniteliği yürütülecek uygulama başlangıç kodunu belirtir. Bu başlangıç kodu çalışma zamanı derlemesini etkinleştirir.
Sınıf kitaplığı için çalışma zamanı derlemesini Razor etkinleştirme
Pages projesinin MyClassLibRazorbir sınıf kitaplığına (RCL) başvurdığı Razor bir senaryo düşünün. RCL, ekibinizin tüm MVC ve _Layout.cshtml Pages projelerinin tükettiği bir Razor dosya içerir. Bu RCL'deki dosya için çalışma zamanı derlemesini _Layout.cshtml etkinleştirmek istiyorsunuz. Sayfalar projesinde Razor aşağıdaki değişiklikleri yapın:
Var olan bir projede çalışma zamanı derlemesini koşullu olarak etkinleştirme başlığındaki yönergelerle çalışma zamanı derlemesini etkinleştirin.
içinde
Startup.ConfigureServicesçalışma zamanı derleme seçeneklerini yapılandırın:public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.Configure<MvcRazorRuntimeCompilationOptions>(options => { var libraryPath = Path.GetFullPath( Path.Combine(HostEnvironment.ContentRootPath, "..", "MyClassLib")); options.FileProviders.Add(new PhysicalFileProvider(libraryPath)); }); }Yukarıdaki kodda MyClassLib RCL'sinin mutlak yolu oluşturulur. PhysicalFileProvider API'si, bu mutlak yolda dizinleri ve dosyaları bulmak için kullanılır. Son olarak örnek,
PhysicalFileProviderRCL'nin.cshtmldosyalarına erişim sağlayan bir dosya sağlayıcıları koleksiyonuna eklenir.
Ek kaynaklar
ASP.NET Core