2017-07-13 31 views
1

解决方案包括2个DLL库,1个控制台应用程序和1个Web应用程序。只有最后一个项目使用Microsoft.Net.Compilers NuGet包。软件包现在已经更新到2.3.0版本,这意味着C#7.1和VB 15.3。罗斯林编译器版本用于项目缺少Microsoft.Net.Compilers

来源:Roslyn NuGet packages

至于其他3个项目没有安装Microsoft.Net.Compilers NuGet包,罗斯林编译器和C#的版本他们使用什么呢?我使用VS.Net 2017 15.2与.NET Framework 4.7,所以我想它应该C#7.0,但仍然Microsoft.Net.Compiler在2.2版应安装在那里,但不是。

回答

5

Microsoft.Net.Compilers包将覆盖(通过在项目文件中设置属性)默认版本的包含在MSBuild/Visual Studio中的Roslyn。

不引用它的常规类库是使用您的Visual Studio版本& MSBuild附带的Roslyn内部版本编译的。

+1

我不相信这是真的。例如,为了在一个星期前测试C#7.1代码,我在项目中添加了一个Microsoft.Net.Compilers预发行版,它编译得很好。智能感知仍然显示错误,但实际构建工作(同样它从命令行起作用)。 –

+0

@JonSkeet:你说的对;编辑。 – SLaks

+0

很高兴我不是很困惑:) –