Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Razor file dengan .cshtml ekstensi dikompilasi pada waktu build dan penerbitan Razor menggunakan SDK. Kompilasi runtime dapat diaktifkan secara opsional dengan mengonfigurasi proyek.
Catatan
Kompilasi runtime:
- Sudah usang mulai dari .NET 10.
- Tidak didukung untuk Razor komponen Blazor aplikasi.
- Tidak mendukung global menggunakan arahan.
- Tidak mendukung implisit menggunakan arahan.
- Menonaktifkan .NET Hot Reload.
- Tidak disarankan untuk skenario produksi.
Untuk skenario produksi, gunakan kompilasi build-time default. Untuk skenario pengembangan, gunakan Hot Reload. Untuk informasi selengkapnya, lihat Razor kompilasi runtime sudah usang.
Razor Kompilasi
Kompilasi Razor file build-time dan publish-time diaktifkan secara default oleh Razor SDK. Saat diaktifkan, kompilasi runtime melengkapi kompilasi build-time, memungkinkan Razor file diperbarui jika diedit saat aplikasi berjalan.
Memperbarui Razor tampilan dan Razor Halaman selama pengembangan saat aplikasi berjalan juga didukung menggunakan .NET Hot Reload.
Catatan
Razor Kompilasi runtime telah usang mulai dari .NET 10. Saat diaktifkan, kompilasi runtime menonaktifkan .NET Hot Reload. Sebaiknya gunakan Hot Reload sebagai gantinya untuk skenario pengembangan. Untuk informasi selengkapnya, lihat Razor kompilasi runtime sudah usang.
Mengaktifkan kompilasi runtime untuk semua lingkungan
Untuk mengaktifkan kompilasi runtime untuk semua lingkungan:
Instal Microsoft.AspNetCore.Mvc.Razor. Paket RuntimeCompilation NuGet.
Panggil AddRazorRuntimeCompilation di
Program.cs:var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages() .AddRazorRuntimeCompilation();
Mengaktifkan kompilasi runtime secara kondisional
Kompilasi runtime dapat diaktifkan secara kondisional, yang memastikan bahwa output yang diterbitkan:
- Menggunakan tampilan yang dikompilasi.
- Tidak mengaktifkan pengamat file dalam produksi.
Untuk mengaktifkan kompilasi runtime hanya untuk Development lingkungan:
Instal Microsoft.AspNetCore.Mvc.Razor. Paket RuntimeCompilation NuGet.
AddRazorRuntimeCompilation Panggil
Program.cssaat lingkungan saat ini diatur ke Pengembangan:var builder = WebApplication.CreateBuilder(args); var mvcBuilder = builder.Services.AddRazorPages(); if (builder.Environment.IsDevelopment()) { mvcBuilder.AddRazorRuntimeCompilation(); }
Kompilasi runtime juga dapat diaktifkan dengan perakitan startup hosting. Untuk mengaktifkan kompilasi runtime di Development lingkungan untuk profil peluncuran tertentu:
- Instal Microsoft.AspNetCore.Mvc.Razor. Paket RuntimeCompilation NuGet.
- Ubah bagian profil peluncuran
environmentVariablesdilaunchSettings.json:Verifikasi bahwa
ASPNETCORE_ENVIRONMENTdiatur ke"Development".Atur
ASPNETCORE_HOSTINGSTARTUPASSEMBLIESke"Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation". Misalnya, berikut inilaunchSettings.jsonmemungkinkan kompilasi runtime untuk profil peluncuranViewCompilationSampledanIIS Express:{ "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" } } } }
Dengan pendekatan ini, tidak ada perubahan kode yang diperlukan dalam Program.cs. Pada runtime, ASP.NET Core mencari atribut HostingStartup tingkat perakitan di Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation. Atribut HostingStartup menentukan kode startup aplikasi untuk dijalankan dan kode startup tersebut memungkinkan kompilasi runtime.
Mengaktifkan kompilasi runtime untuk Razor pustaka kelas
Pertimbangkan skenario di mana Razor proyek Pages mereferensikanRazorpustaka kelas (RCL) bernama MyClassLib. RCL berisi file yang _Layout.cshtml digunakan oleh proyek MVC dan Razor Pages. Untuk mengaktifkan kompilasi runtime untuk _Layout.cshtml file di RCL tersebut Razor , buat perubahan berikut dalam proyek Pages:
Aktifkan kompilasi runtime dengan instruksi di Mengaktifkan kompilasi runtime secara kondisional.
Konfigurasikan MvcRazorRuntimeCompilationOptions di
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)); });Kode sebelumnya membangun jalur absolut ke MyClassLib RCL. PHYSICALFileProvider API digunakan untuk menemukan direktori dan file di jalur absolut tersebut. Terakhir,
PhysicalFileProviderinstans ditambahkan ke koleksi penyedia file, yang memungkinkan akses ke file RCL.cshtml.
Sumber Daya Tambahan:
Razor file dengan .cshtml ekstensi dikompilasi pada waktu build dan penerbitan Razor menggunakan SDK. Kompilasi runtime mungkin diaktifkan secara opsional dengan mengonfigurasi proyek Anda.
Razor Kompilasi
Kompilasi Razor file build-time dan publish-time diaktifkan secara default oleh Razor SDK. Saat diaktifkan, kompilasi runtime melengkapi kompilasi build-time, memungkinkan Razor file diperbarui jika diedit.
Mengaktifkan kompilasi runtime saat pembuatan proyek
Templat Razor proyek Pages dan MVC menyertakan opsi untuk mengaktifkan kompilasi runtime saat proyek dibuat. Opsi ini didukung di ASP.NET Core 3.1 atau yang lebih baru.
Dalam dialog Buat aplikasi web ASP.NET Core baru:
- Pilih templat proyek Aplikasi Web atau Aplikasi Web (Model-View-Controller).
- Pilih kotak centang Aktifkan Razor kompilasi runtime.
Mengaktifkan kompilasi runtime dalam proyek yang ada
Untuk mengaktifkan kompilasi runtime untuk semua lingkungan dalam proyek yang ada:
Instal Microsoft.AspNetCore.Mvc.Razor. Paket RuntimeCompilation NuGet.
Perbarui metode proyek
Startup.ConfigureServicesuntuk menyertakan panggilan ke AddRazorRuntimeCompilation. Contohnya:public void ConfigureServices(IServiceCollection services) { services.AddRazorPages() .AddRazorRuntimeCompilation(); // code omitted for brevity }
Mengaktifkan kompilasi runtime secara kondisional dalam proyek yang ada
Kompilasi runtime dapat diaktifkan sewaktu-waktu sehingga hanya tersedia untuk pengembangan lokal. Mengaktifkan secara kondisional dengan cara ini memastikan bahwa output yang diterbitkan:
- Menggunakan tampilan yang dikompilasi.
- Tidak mengaktifkan pengamat file dalam produksi.
Untuk mengaktifkan kompilasi runtime hanya di Development lingkungan:
- Instal Microsoft.AspNetCore.Mvc.Razor. Paket RuntimeCompilation NuGet.
- Ubah bagian profil
environmentVariablespeluncuran dilaunchSettings.json:- Verifikasi
ASPNETCORE_ENVIRONMENTdiatur ke"Development". - Atur
ASPNETCORE_HOSTINGSTARTUPASSEMBLIESke"Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation".
- Verifikasi
Dalam contoh berikut, kompilasi runtime diaktifkan di Development lingkungan untuk profil peluncuran IIS Express dan RazorPagesApp :
{
"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"
}
}
}
}
Tidak ada perubahan kode yang diperlukan di kelas proyek Startup . Pada runtime, ASP.NET Core mencari atribut HostingStartup tingkat perakitan di Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation. Atribut HostingStartup menentukan kode startup aplikasi untuk dijalankan. Kode startup tersebut memungkinkan kompilasi runtime.
Mengaktifkan kompilasi runtime untuk Razor pustaka kelas
Pertimbangkan skenario di mana Razor proyek Pages mereferensikanRazorpustaka kelas (RCL) bernama MyClassLib. RCL berisi _Layout.cshtml file yang digunakan semua proyek MVC dan Razor Pages tim Anda. Anda ingin mengaktifkan kompilasi runtime untuk file di RCL tersebut _Layout.cshtml . Buat perubahan berikut dalam Razor proyek Pages:
Aktifkan kompilasi runtime dengan instruksi di Kompilasi runtime aktifkan secara kondisional di proyek yang ada.
Konfigurasikan opsi kompilasi runtime di
Startup.ConfigureServices: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)); }); }Dalam kode sebelumnya, jalur absolut ke RCL MyClassLib dibangun. PHYSICALFileProvider API digunakan untuk menemukan direktori dan file di jalur absolut tersebut. Terakhir,
PhysicalFileProviderinstans ditambahkan ke koleksi penyedia file, yang memungkinkan akses ke file RCL.cshtml.
Sumber Daya Tambahan:
ASP.NET Core