現在、私のカミソリビューエンジンは、「言語バージョン6以降を使用してください」というエラーをスローします。それはちょうど私に指針を与える再研ぎ器かもしれません。しかし、カミソリでC#6.0を使用するにはどうすればよいですか。 csファイルの残りのソリューションでは、新しいバージョン7のすべての機能を使用できます。
これは、プロジェクトが.netフレームワークの新しいバージョンにアップグレードされたときのweb.config
のテンプレートのバグによるものだと思います。
web.config
に移動して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>
これを4.5.1
プロジェクトから実行している場合、4.5.2
にアップグレードすると修正される場合があります。
そうでない場合は、このNuGetパッケージをインストールして、新しい機能を提供することをお勧めします:Microsoft.CodeDom.Providers.DotNetCompilerPlatform
そのため、次のようなことを行います。
<p>@Model.Person?.Name</p>
うまくいくかもしれない。そうでない場合は、次のように明示してみてください。
<p>@(Model.Person?.Name)</p>
RazorEngineテンプレートでC#6機能を有効にするための最良のステップバイステップの手順は次のとおりです。 https://github.com/Antaris/RazorEngine/issues/363#issuecomment-27310618
そこに記載されていないのは、app.configにコンパイラセクションを追加するときに、バージョン番号がインストールするパッケージのバージョンと一致することを確認することです。コメントではバージョンは1.0.3でしたが、インストールしたパッケージには1.0.4が含まれていたため、次のようにする必要がありました。
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
</compilers>
他の答えは非常に良いですが、この問題の手順を明確に明確にする短い短い記事を見つけました: https://cpratt.co/using-csharp-6-or-7-with-mvc-5 /
要するに:
パッケージマネージャーコンソールでInstall-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
最後に次の行を使用してWeb.configをチェック/変更します。
<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /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.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:15 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" /> </compilers> </system.codedom>