1. ホーム
  2. c#

[解決済み] C# 6をWeb Siteプロジェクトタイプで使用するには?

2022-06-25 19:27:59

質問

既存の Web サイト プロジェクトタイプのVisual Studio 2015で、Frameworkを4.6に変更しました。

それから私は、ファイルの背後にある私のコードで、それらのすべての新機能が利用できることを期待しました。

残念ながら、私は次のようなエラーを受け取っています。

エラー CS8026: 機能 'expression-bodied property' は C# 5 で使用できません。言語バージョン 6 以上を使用してください。

や、例えば

<ブロッククオート

エラー CS8026: 機能 '補間された文字列' は C# 5 で使用できません。言語バージョン6以降をご使用ください。

Googleで調べてみたところ コメント投稿している人 のブログ投稿で、ScottGu(ページ内で "8026" を検索)。

私は彼の解決策を理解しておらず、さらに解決策をもっと目に見えるようにしたいので、この SO 投稿を作成しました。

私の質問です。

どのように私は、Visual Studio 2015のプロジェクトで、タイプ Web サイト (でない(つまり ウェブアプリケーション でなく)、C# 6 の機能を認識することができますか?

どのように解決するのですか?

私はASP.NET MVC 5(5.2.3をテスト済み)でテストしましたが、他のウェブフレームワークでは異なるかもしれません。 NuGet パッケージの Roslyn CodeDOM .

Microsoft.CodeDom.Providers.DotNetCompilerPlatform は、DLLファイルを追加する必要があります...

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

新しい .NET Compiler Platform ("Roslyn") コンパイラーをサービス API として使用する、代替 CodeDOM プロバイダーです。これは、CodeDOM を使用するシステムの新しい言語機能 (例: ASP.NET ランタイム コンパイル) のサポートと、これらのシステムのコンパイル パフォーマンスを向上させるものです。

...そして、以下を 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=\&quot;Web\&quot; /optionInfer+" />
  </compilers>
</system.codedom>

それでもXMLが見つからない場合は、自分で追加してみてください。