私のVS.NET2015開発マシンでは、 nameof
演算子 を使用するRazorビューは魅力のように機能します。
Windowsサーバーに展開すると、CSHTMLRazorビューのコンパイルに失敗します。
名前 'nameof'は現在のコンテキストに存在しません。
ドイツ語で:
Der Name'nameof 'ist im aktuellen Kontext nichtvorhanden。
.NET Framework 4.6( "ASP.NETバージョン:4.6.81.0")をインストールしましたが、成功しませんでした。
おそらく私は単純なものを見逃しているでしょう。
それでも、私は本当に無知です。それはweb.config設定ですか?または、他の何か?
私の質問:
CSHTML RazorビューでC#6機能(nameof
演算子など)を有効にするにはどうすればよいですか?
ファイル「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
を参照します。
このサイト によると、C#6の機能をかみそりのビューで機能させるには、Web.configファイルでRoslynコンパイラを参照する必要があります。
これは、 CodeDOM Providers for .NET Compiler NuGet package をインストールするだけで実現できます。
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform