2017-02-14 11 views
11

ソリューションにはいくつかのプロジェクトがあり、タプルやスローなどのC#7機能はすべてのライブラリプロジェクトで正常に機能しますC#7の機能のエラーのためにコンパイルされない(非コア)Webプロジェクトがあります。コンパイル直後に、エラーウィンドウが素早く消滅します。おそらく、IDE /エディタが同じユニットをエラーなしでコンパイルするからです。コンパイルエラーを表示するには、出力ウィンドウを使用する必要があります。これは、IDE /エディタがC#7を前提としているようですが、ビルドで使用されるコンパイラはそうではありません。C#7の機能はVisual StudioのWebプロジェクト内では機能しません2017 RC

条件付きコンパイルシンボルに "__DEMO__,__DEMO_EXPERIMENTAL__"を追加しようとしましたが、無駄にしました。私は異なるバージョンのフレームワークを対象にして実験を行い、compilationtargetFrameworkのタグを含む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'が返されます。

答えて

22

solutionは、Microsoft.Net.Compilersのnugetパッケージを> = 2.0.0に更新することです。現時点では、2.0.0のバージョンが表示されるためには、パッケージマネージャーの上部にある「プレリリースを含む」チェックボックスをチェックする必要があります。これをインストールすると、の詳細設定をDefaultから上書きする必要はありません。

+1

1時間かけて建物に費やして、私のプロジェクトをきれいにして、毎回失敗しました。 VS2017を再インストールしました。それから私はあなたの答えを見つけ、すぐに問題を解決しました。ありがとうございました! – jao

+1

私はこの答えが答えとしてマークされていないと思います!どうもありがとう! –

+0

パーフェクト!私の場合は、VS2017コミュニティ版でした。 –

関連する問題