web-dev-qa-db-ja.com

Razorビューで「nameof」演算子を使用する

私の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演算子など)を有効にするにはどうすればよいですか?

27
Uwe Keim

ファイル「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=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
 </system.codedom>

そして、パッケージMicrosoft.CodeDom.Providers.DotNetCompilerPlatformを参照します。

19
chsword

このサイト によると、C#6の機能をかみそりのビューで機能させるには、Web.configファイルでRoslynコンパイラを参照する必要があります。

これは、 CodeDOM Providers for .NET Compiler NuGet package をインストールするだけで実現できます。

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
32
Jamie Dunstan