Menurut dokumentasi , tampilan Razor harus, secara default, mengkompilasi ulang perubahan pada lingkungan lokal untuk ASP.NET Core 3.0.
Namun, proyek saya tidak melakukan ini secara lokal. Jika saya mengubah tampilan dan menyegarkan saat saya men-debug secara lokal, perubahan tersebut tidak diterapkan. Saya harus menghentikan solusi, menjalankan kembali, dan kemudian melihat perubahannya.
Saya melakukan ini pada template ASP.NET Core Web Application default pada Visual Studio 2019 dengan ASP.NET Core 3.0.0 Preview 2 menggunakan halaman Razor. Adakah ide jika saya perlu mengubah pengaturan untuk mengaktifkan fitur ini?
UPDATE NOV 2019 FOR 3.0 RILIS LENGKAP:
Pertanyaan ini masih banyak dilihat. Beberapa jawaban telah dikutip untuk ditambahkan
services.AddControllersWithViews().AddRazorRuntimeCompilation();
Ke ConfigureServices()
fungsi Anda Startup.cs
setelah menambahkan Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
paket NuGet. Dalam kasus saya, saya hanya menggunakan Razor Pages, jadi saya tidak menelepon AddControllersWithViews()
. Sebaliknya, ini berhasil untuk saya:
services.AddRazorPages().AddRazorRuntimeCompilation();
sumber
.AddRazorRuntimeCompilation();
Terima kasih!Jawaban:
Oke, sepertinya itu belum didukung :(
Anda dapat membaca lebih lanjut tentang masalah ini di sini https://github.com/aspnet/Announcements/issues/343
Aplikasi yang memerlukan kompilasi runtime atau kompilasi ulang file Razor harus:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
paket. Ini akan tersedia sebagai bagian dari rilis 3.0.0-preview3 .ConfigureServices
untuk menyertakan panggilan keAddMvcRazorRuntimeCompilation
:sumber
AddMvcRazorRuntimeCompilation
adalahAddRazorRuntimeCompilation
dengan ASP.Net Core 3.0 Preview 4Untuk versi rilis ASP.NET Core 3:
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
Ini juga dapat diaktifkan secara bersyarat hanya untuk pengembangan lokal, dikutip dari tautan:
public Startup(IConfiguration configuration, IWebHostEnvironment env) { Configuration = configuration; Env = env; } public IWebHostEnvironment Env { get; set; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { IMvcBuilder builder = services.AddRazorPages(); #if DEBUG if (Env.IsDevelopment()) { builder.AddRazorRuntimeCompilation(); } #endif }
sumber
Untuk mendapatkan kembali kompilasi tampilan runtime di
ASP.NET Core
3Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
services.AddMvc().AddRazorRuntimeCompilation()
Microsoft.VisualStudio.Web.CodeGeneration.Design
jika ada ketidakcocokan versi padaMicrosoft.CodeAnalysis.Common
paketsumber
Kompilasi runtime diaktifkan menggunakan
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
paket. Untuk mengaktifkan kompilasi waktu proses, aplikasi harus:Instal
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
paket NuGet.Perbarui metode proyek
Startup.ConfigureServices
untuk menyertakan panggilan keAddRazorRuntimeCompilation
:https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
sumber
Untuk mendapatkan kembali Runtime Razor Views Compilation di ASP.NET Core 3.1:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
paket NuGet.Startup.ConfigureServices
untuk menyertakan panggilan keAddRazorRuntimeCompilation
.services.AddRazorPages().AddRazorRuntimeCompilation()
;Kompilasi file Razor di ASP.NET Core 3.1
sumber
Langkah 1: Instal paket di bawah ini dari NuGet Package Manager for Solution.
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Langkah 2: Tambahkan kode di bawah ini di file ConfigureServices of Startup.cs
services.AddControllersWithViews (). AddRazorRuntimeCompilation ();
Simpan halaman dan kemudian segarkan browser klien.
Jika Anda menggunakan Razor, tambahkan kode untuk services.AddRazorPages (). AddRazorRuntimeCompilation ();
sumber
Hanya catatan tambahan - Anda mungkin hanya ingin mengaktifkan kompilasi runtime ini secara bersyarat, sehingga keluaran yang dipublikasikan:
Aktifkan kompilasi runtime secara bersyarat
sumber
Di .NET Core 3.1, Anda perlu menonaktifkan pembuatan
views.dll
file.Tambahkan kode di bawah ini ke
.csproj
file Anda (di root proyek Anda):<PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <UserSecretsId>...</UserSecretsId> <!-- add from this line: --> <CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory> <CopyRefAssembliesToPublishDirectory>false</CopyRefAssembliesToPublishDirectory> <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish> <RazorCompileOnBuild>false</RazorCompileOnBuild> <!-- to this line. --> </PropertyGroup>
Instal paket di bawah ini dari NuGet Package Manager untuk Solusinya.
Tambahkan kode di bawah ini ke
ConfigureServices
metodeStartup.cs
file Anda :Atau
Atau
Setelah ini, publikasikan lagi dan jalankan. Ini akan berhasil.
sumber
Cara termudah untuk mengonfigurasi Kompilasi Runtime hanya untuk Pengembangan Lokal adalah dengan memperbarui profil peluncuran di
launchSettings.json
. Metode ini tidak memerlukan perubahan kode untuk mengonfigurasi proyek yang berjalan secara lokal (ini tidak akan memengaruhi produksi Anda).Lihat dokumentasi resmi :
Contoh:
{ "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" } } } }
sumber