(Это не дубликат Распечатайте и / или измените версию c #, которую использует служба компилятора бритвы для компиляции cshtml , потому что я использую RazorGenerator, а не ASP.NET, перевод из .cshtmlв .cs происходит каждый раз, когда я нажимаю кнопку Сохранить в Visual Studio, поэтому добавление ссылок на сборки или пакетов NuGet в мой проект не поможет)
У меня есть проект библиотеки классов C # с использованием RazorGenerator (расширение Visual Studioкоторый переносит .cshtml
к .cs
источникам).Сам RazorGenerator работает нормально, и мои файлы .cshtml без проблем преобразуются в cs без проблем, учитывая, что я использую функции и типы языка C # 7.3, определенные в пользовательских сборках.
Проблема заключается в собственном конструкторе .cshtml в Visual Studio (независимомRazorGenerator), по-видимому, по умолчанию версия компилятора C # 4.0 и даже не загружает System.Core.dll
- поэтому при просмотре файлов .cshtml в редакторе Visual Studio я получаю сообщения об ошибках, которых не должно быть:
«Функция« объявление переменных »недоступна в C # 4. Пожалуйста, используйте языковую версию 7.0 или выше.»
и поврежденный импорт пространства имен, потому что он не загружает сборки:
Я видел эти сообщения SO:
...которые предлагают добавить йПакет NuGet Microsoft.CodeDom.Providers.DotNetCompilerPlatform
для проекта и перезапуск Visual Studio, однако это не решило проблему.