ソリューションにはいくつかのプロジェクトがあり、タプルやスローなどのC#7機能はすべてのライブラリプロジェクトで正常に機能しますC#7の機能のエラーのためにコンパイルされない(非コア)Webプロジェクトがあります。コンパイル直後に、エラーウィンドウが素早く消滅します。おそらく、IDE /エディタが同じユニットをエラーなしでコンパイルするからです。コンパイルエラーを表示するには、出力ウィンドウを使用する必要があります。これは、IDE /エディタがC#7を前提としているようですが、ビルドで使用されるコンパイラはそうではありません。C#7の機能はVisual StudioのWebプロジェクト内では機能しません2017 RC
条件付きコンパイルシンボルに "__DEMO__,__DEMO_EXPERIMENTAL__
"を追加しようとしましたが、無駄にしました。私は異なるバージョンのフレームワークを対象にして実験を行い、compilation
とtargetFramework
のタグを含むweb.configをsystem.web
と編集しました。
例エラー:ここ
if (!config.Properties.TryGetValue(modelId, out var model)) // error CS1003: Syntax error, ',' expected
if (modelDescription is ComplexTypeModelDescription complexTypeModelDescription) // error CS1026:) expected
は、プロジェクトのcsprojファイルの最初の数行です:
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
アップデート:私は、最新のテンプレートを使用して新しいWebプロジェクトを作成しようとした VS 2017 RCでソースファイルをコピーしてください。同じこと。
また、プロジェクト|プロパティ|ビルド|高度な|言語バージョンを7に設定します。「無効なオプション '/ langversion」の7'が返されます。
1時間かけて建物に費やして、私のプロジェクトをきれいにして、毎回失敗しました。 VS2017を再インストールしました。それから私はあなたの答えを見つけ、すぐに問題を解決しました。ありがとうございました! – jao
私はこの答えが答えとしてマークされていないと思います!どうもありがとう! –
パーフェクト!私の場合は、VS2017コミュニティ版でした。 –