在我的VS.NET 2015开发机器上,使用nameof
operator工作的Razor视图就像魅力一样。
部署到Windows服务器时,无法编译CSHTML Razor视图:
当前上下文中不存在名称“nameof”。
德语:
Der Name'nameof'ist im aktuellen Kontext nicht vorhanden。
我安装了.NET Framework 4.6(“ASP.NET版本:4.6.81.0”)但没有成功。
我很可能会遗漏一些简单的东西。
尽管如此,我真的很无能为力。它是web.config设置吗?或其他什么?
我的问题:
如何在CSHTML Razor视图中启用C#6功能(如nameof
运算符)?
答案 0 :(得分:32)
根据this site,您需要在Web.config文件中引用Roslyn编译器,以使C#6功能在您的剃刀视图中起作用。
只需安装CodeDOM Providers for .NET Compiler NuGet package。
即可实现PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
答案 1 :(得分:18)
确保在您的文件“web.config”中存在节点system.codedom
。
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
您可以参考包Microsoft.CodeDom.Providers.DotNetCompilerPlatform
。