Uwe*_*eim 25 .net c# asp.net-mvc razor c#-6.0
在我的VS.NET 2015开发机器上,使用nameof操作符的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设置吗?或者是其他东西?
我的问题:
如何nameof在CSHTML Razor视图中启用C#6功能(如运营商)?
Jam*_*tan 33
根据此站点,您需要在Web.config文件中引用Roslyn编译器,以使C#6功能在您的剃刀视图中起作用.
这可以通过安装CodeDOM Providers for .NET Compiler NuGet包来实现.
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Run Code Online (Sandbox Code Playgroud)
chs*_*ord 19
确保在您的文件"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>
Run Code Online (Sandbox Code Playgroud)
你会参考这个包Microsoft.CodeDom.Providers.DotNetCompilerPlatform.