Saya sedang membangun .NET Core MVC pada versi terbaru 2.2. Saya mendapat masalah saat saya membuat perubahan pada file CSHTML dan menyegarkan halaman, perubahan saya tidak tercermin di browser. Saya harus memulai ulang proyek untuk melihat perubahan saya. Ini telah terjadi untuk sementara waktu sekarang jadi saya tidak yakin perubahan apa yang menyebabkan masalah ini.
Saya telah mencoba menggunakan "Empty Cache and Hard Reload" chrome serta browser lainnya tidak berhasil. Ini terjadi pada Windows dan Mac menggunakan Visual Studio untuk Mac dan VS Code
Dalam proyek .Net Core default, ini berfungsi dengan baik sehingga pasti ada sesuatu dalam proyek saya yang berubah sepanjang jalan. Saya bertanya-tanya dari mana saya harus memulai untuk men-debug masalah ini? Saya sudah mencoba mengomentari hampir semua yang ada di saya Startup.cs
dan Program.cs
tanpa resolusi.
sumber
Jawaban:
Tampaknya ada perubahan yang dibuat pada ASP.NET Core 2.2 (dan saya tidak dapat menemukan pengumuman apa pun tentang perubahan ini). Jika Anda tidak secara eksplisit berjalan di lingkungan 'Development', maka Razor Views dikompilasi dan Anda tidak akan melihat perubahan apa pun yang dibuat pada .cshtml
Namun Anda dapat mematikan ini menggunakan beberapa konfigurasi di kelas Startup Anda sebagai berikut.
Untuk ASP.NET Core 3.0 dan yang lebih tinggi, lihat jawaban Alexander Christov .
sumber
MissingMethodException: Method not found: 'Microsoft.Cci.IMethodReference Microsoft.Cci.ICustomAttribute.Constructor(Microsoft.CodeAnalysis.Emit.EmitContext)'. Microsoft.CodeAnalysis.CSharp.Symbol.Microsoft.CodeAnalysis.ISymbol.GetAttributes()
Ada ide tentang apa arti pengecualian ini? Semua halaman lain memuat dengan baik. Hanya ketika saya mengedit file dan menyegarkan saya mendapatkan kesalahan iniservices.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = _env.IsEnvironment("MyEnvironment"));
Di ASP.NET Core 3.0 dan yang lebih tinggi ,
RazorViewEngineOptions.AllowRecompilingViewsOnFileChange
tidak tersedia.Terkejut bahwa menyegarkan tampilan saat aplikasi berjalan tidak berhasil, saya menemukan solusi berikut:
Tambahkan yang berikut ini di
Startup.cs
:services.AddControllersWithViews (). AddRazorRuntimeCompilation () ;
Berikut penjelasan lengkapnya buat yang penasaran ...
HTH
sumber
Saya baru saja membuat proyek baru menggunakan template ASP.NET MVC Core 3.1 terbaru dan saya mengubah yang berikut ini untuk mengaktifkan rekompilasi runtime untuk Debug:
Referensi paket NuGet - Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation .
Startup.cs - ConfigureServices (IServiceCollection services) WS:
SEKARANG:
sumber
Anda harus menambahkan ini:
ke metode ConfigureService .
Sadarilah kode di bawah ini tidak tersedia di ASP.NET Core 3.1:
sumber
Di bawah ini membantu saya ketika pandangan berada dalam proyek terpisah.
sumber
Menggunakan .net core 2.2 menjalankan aplikasi dengan perintah
dotnet watch run
, proyek dimulai ulang setelah setiap perubahansumber
Saya dapat menyelesaikan masalah ini di Rider dengan menambahkan
ASPNETCORE_ENVIRONMENT=Development
variabel lingkungan.sumber
Apakah Anda benar-benar yakin Anda menggunakan 2.2? Periksa csproj Anda karena mungkin itu bug ini https://github.com/aspnet/Razor/issues/2466 Anda dapat mencoba mematikan
RazorCompileOnBuild
info selengkapnya https://docs.microsoft.com/en-us/aspnet/core/razor -pages / sdk? view = aspnetcore-2.1 # propertisumber
Ada dua cara untuk mengatasi masalah ini:
1 . Periksa izin folder tempat file .sln Anda ada. Mungkin ada masalah dengan izin akses file karena Visual studio mungkin tidak dapat mengakses file saat server IIS ekspres sedang berjalan, jadi untuk mencerminkan perubahan .cshtml baru setiap kali Anda perlu restart server, jadi saya sarankan edit izin akses folder dengan:
Klik kanan pada folder-> properti-> keamanan-> klik tombol edit -> centang semua opsi-> simpan .
Mulai ulang Visual studio untuk melihat perubahan.
Jika ini tidak berhasil, gunakan 2 opsi.
2. Dalam proyek Anda di file startup.cs tambahkan baris di bawah ini ConfigureServices () dalam metode:
sumber