2015-11-20 6 views
21

私のVS.NET 2015開発マシンでは、nameof operatorを使用するレイザービューは魅力的です。 Windowsサーバへのデプロイ、それはCSHTMLカミソリビューのコンパイルに失敗しレイザービューで "nameof"演算子を使用

名「がNameOfは、」現在のコンテキストに存在しません。ドイツで

デア名 'がNameOf' イストイムaktuellen Kontext NICHT vorhanden。

.NET Framework 4.6(「ASP.NETバージョン:4.6.81.0」)をインストールしましたが、成功しませんでした。

ほとんどの場合、私は単純な単純なものが欠けています。

まだ、私は本当に無知です。それはweb.config設定ですか?または、他の何か?

私の質問:CSHTMLカミソリビューで(nameofオペレータのような)C#6の機能を有効にする方法

+0

ありがとう、@ Ksv3n私はそれを(もう一度)しました。結果に変化はなく、依然としてコンパイルエラーです。 "バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.6.81.0'" –

答えて

14

ファイル "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を参照してください。

+0

これは実際にそのトリックでした。これらの行は私のローカルのdevマシンには存在していたが、サーバ上には存在しなかった。ありがとうございました! –

+1

これはメインの 'Web.config'またはビューの' Web.config'にありますか? – Maslow

+2

@Maslow main Web.config – chsword

30

this siteによれば、Web.configファイルでRoslynコンパイラを参照して、C#6の機能があなたのカミソリビューで機能するようにする必要があります。

これは、CodeDOM Providers for .NET Compiler NuGet packageをインストールすることによって簡単に達成できます。

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 
+6

この回答は[chsword]を上書きします。 –