(这不是Print and/or modify the c# version that the razor compiler service uses to compile cshtml的副本,因为我使用的是RazorGenerator,而不是ASP.NET,每次我在Visual Studio中按“保存”按钮时,都会发生从.cshtml到.cs的转换。对我的项目的引用或NuGet包无济于事)
我有一个使用RazorGenerator(将.cshtml
转换为.cs
源的Visual Studio扩展的C#类库项目)。考虑到我使用的是自定义程序集中定义的C#7.3语言功能和类型,RazorGenerator本身可以正常工作,并且将.cshtml文件正确转换为cs不会出现任何问题。
问题是Visual Studio自己的.cshtml设计器(独立于RazorGenerator)似乎默认为C#4.0编译器版本,甚至没有加载System.Core.dll
-因此,在Visual Studio编辑器中查看.cshtml文件时,我看到不应该出现的错误消息:
“ C#4中没有功能'输出变量声明'。请使用语言版本7.0或更高版本。”
和损坏的名称空间导入,因为它没有加载程序集:
我看到了这些SO帖子:
...这建议将NuGet Microsoft.CodeDom.Providers.DotNetCompilerPlatform
包添加到项目中并重新启动Visual Studio,但是并不能解决问题。