2017-07-13 3 views
1

ソリューションは、2つのDLLライブラリ、1つのコンソールアプリケーションと1つのWebアプリケーションで構成されています。最後のプロジェクトであるWebのみがMicrosoft.Net.Compilers NuGetパッケージを使用します。パッケージがバージョン2.3.0にアップデートされました。C#7.1とVB 15.3を意味します。プロジェクトに欠落しているRoslynコンパイラのバージョンMicrosoft.Net.Compilers

ソース:Roslyn NuGet packages

3つの他のプロジェクトがMicrosoft.Net.Compilers NuGetパッケージをインストールしていないとして、彼らはどのようなロザリンコンパイラとC#バージョンを使用していますか?

.NET Framework 4.7でVS.Net 2017 15.2を使用しているため、C#7.0になりますが、バージョン2.2のMicrosoft.Net.Compilersはそこにインストールする必要があります。

答えて

5

Microsoft.Net.Compilersパッケージは、MSBuild/Visual Studioに含まれているRoslynのデフォルトバージョンを上書きします(プロジェクトファイルのプロパティを設定することにより)。

これを参照しない正規のクラスライブラリは、Visual Studio & MSBuildのバージョンに含まれているRoslynビルドを使用してコンパイルされます。

+1

私はそれが本当であるとは思わない。たとえば、1週間前にC#7.1コードをテストするために、私はMicrosoft.Net.Compilersプレリリースをプロジェクトに追加しました。これはうまくコンパイルされました。 Intellisenseはまだエラーを示していましたが、実際のビルドは機能しました(同様にコマンドラインからも機能しました)。 –

+0

@JonSkeet:そうです。編集されました。 – SLaks

+0

うれしい私はちょうど何とか混乱していなかった:) –

関連する問題