Я создаю .NET Core MVC на последней версии 2.2. У меня проблема, когда я вношу изменения в файл CSHTML и обновляю страницу, мои изменения не отражаются в браузере. Мне нужно перезапустить проект, чтобы увидеть мои изменения. Это происходит уже некоторое время, поэтому я не совсем уверен, какое изменение вызвало эту проблему.
Я пробовал использовать Chrome «Пустой кеш и жесткая перезагрузка», а также другие браузеры, но безрезультатно. Это происходит в Windows и Mac с использованием Visual Studio для Mac и VS Code.
В проекте .Net Core по умолчанию он работает нормально, поэтому в моем проекте должно быть что-то, что изменилось в процессе. Мне интересно, с чего мне начать, чтобы отладить эту проблему? Я пробовал закомментировать почти все в моем Startup.cs
и Program.cs
без разрешения.
Ответы:
Похоже, что в ASP.NET Core 2.2 было внесено изменение (и я не могу найти никаких объявлений об этом изменении). Если вы явно не работаете в среде «Разработка», тогда представления Razor компилируются, и вы не увидите никаких изменений, внесенных в .cshtml.
Однако вы можете отключить это, используя некоторую конфигурацию в своем классе запуска следующим образом.
Для ASP.NET Core 3.0 и выше см. Ответ Александра Христова .
источник
MissingMethodException: Method not found: 'Microsoft.Cci.IMethodReference Microsoft.Cci.ICustomAttribute.Constructor(Microsoft.CodeAnalysis.Emit.EmitContext)'. Microsoft.CodeAnalysis.CSharp.Symbol.Microsoft.CodeAnalysis.ISymbol.GetAttributes()
Есть идеи, что означает это исключение? Все остальные страницы загружаются нормально. Только когда я редактирую файл и обновляю его, я получаю эту ошибкуservices.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = _env.IsEnvironment("MyEnvironment"));
В ASP.NET 3.0 ядра и выше ,
RazorViewEngineOptions.AllowRecompilingViewsOnFileChange
не имеется.Удивившись, что обновление представления во время работы приложения не помогло, я обнаружил следующее решение:
Добавьте следующее
Startup.cs
:services.AddControllersWithViews (). AddRazorRuntimeCompilation () ;
Вот полное объяснение любопытных ...
HTH
источник
Я только что создал новый проект, используя последний шаблон ASP.NET MVC Core 3.1, и изменил следующее, чтобы включить перекомпиляцию среды выполнения для отладки:
Эталонный пакет NuGet - Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation .
Startup.cs - ConfigureServices (службы IServiceCollection) БЫЛ:
СЕЙЧАС ЖЕ:
источник
Вам нужно просто добавить это:
в метод ConfigureService .
Имейте в виду, что приведенный ниже код недоступен в ASP.NET Core 3.1:
источник
Ниже мне помогло, когда просмотры были в отдельном проекте.
источник
Используя запущенное приложение .net core 2.2 с командой,
dotnet watch run
проект перезапускается после каждого измененияисточник
Мне удалось решить эту проблему в Rider, добавив
ASPNETCORE_ENVIRONMENT=Development
переменную окружения.источник
Для тех, кто использует Net Core 3.0 или выше
Перейдите в Инструменты → Диспетчер пакетов Nuget → Управление пакетами nuget для решения.
перейти на вкладку просмотра для просмотра из Интернета
поиск RuntimeCompilation Щелкните Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
установите его на ваши предполагаемые проекты текущую стабильную версию
открыть файл Startup.cs
перейти к недействительному методу ConfigureServices
добавить строку:
services.AddControllersWithViews().AddRazorRuntimeCompilation();
вы сделали
Повторите попытку и посмотрите. Теперь вы можете обновить свои просмотры или страницы.
источник
Вы абсолютно уверены, что используете 2.2? Проверьте свой csproj, потому что это может быть ошибка https://github.com/aspnet/Razor/issues/2466 Вы можете попробовать отключить
RazorCompileOnBuild
дополнительную информацию https://docs.microsoft.com/en-us/aspnet/core/razor -pages / sdk? view = aspnetcore-2.1 # свойстваисточник
Есть два способа решить эту проблему:
1 . Проверьте права доступа к папке, в которой находится ваш .sln-файл. Может возникнуть проблема с разрешениями на доступ к файлам, поскольку Visual Studio может не иметь доступа к файлам при запущенном сервере IIS Express, поэтому для отражения новых изменений .cshtml каждый раз, когда вам нужно перезапустите сервер, поэтому я предлагаю отредактировать права доступа к папке:
Щелкните правой кнопкой мыши папку-> свойства-> безопасность-> нажмите кнопку редактирования -> проверьте все параметры-> сохранить .
Перезапустите Visual Studio, чтобы увидеть изменения.
Если это не работает, используйте 2 варианта.
2. В вашем проекте в файле startup.cs добавьте следующую строку ConfigureServices () в методе:
источник