(This is not a duplicate of Print and/or modify the c# version that the razor compiler service uses to compile cshtml because I'm using RazorGenerator, not ASP.NET, the translation from .cshtml to .cs happens every time I press the Save button in Visual Studio, so adding assembly references or NuGet packages to my project won't help)
I have a C# Class Library project using RazorGenerator (a Visual Studio extension that transpiles .cshtml
to .cs
sources). RazorGenerator itself works fine and my .cshtml files are converted to cs correctly without any problems considering I'm using C# 7.3 language features and types defined in custom assemblies.
The problem is Visual Studio's own .cshtml designer (independent of RazorGenerator) seems to default to the C# 4.0 compiler version and doesn't even load System.Core.dll
- so when viewing .cshtml files in the Visual Studio editor I get peppered with error messages that shouldn't be there:
"Feature 'out variable declaration' is not available in C# 4. Please use language version 7.0 or greater."
and broken namespace imports because it isn't loading assemblies:
I saw these SO posts:
- Where to configure Razor page language version to C# 6?
- C# 6.0 Features Not Working with Visual Studio 2015
...which suggest adding the NuGet Microsoft.CodeDom.Providers.DotNetCompilerPlatform
package to the project and restarting Visual Studio, however that did not solve the issue.