如何在Visual Studio 2015中编译Roslyn以添加C# 7.0支持?
在Visual Studio 2015中启用C# 7.0支持的解决方案
针对你遇到的「NuGet包编译正常但编辑器报错」「重新编译Roslyn失败」这两个问题,我整理了几个实用的解决思路:
一、快速解决:用扩展+NuGet包组合补全编辑器支持
你提到的Microsoft.Net.Compilers NuGet包确实能让项目编译时支持C#7.0,但VS2015自带的编辑器(IntelliSense)还是基于旧版Roslyn,所以会出现红色波浪线报错。解决这个问题的关键是给编辑器也加上C#7.0的语言服务支持:
- 打开VS2015的「工具」→「扩展和更新」,搜索并安装C# 7.0 Support for Visual Studio 2015扩展。这个扩展会替换VS2015的语言服务组件,让编辑器能识别C#7.0特性(包括ValueTuple)。
- 安装完成后重启VS,再配合项目里的
Microsoft.Net.Compilers包(建议安装2.x版本,对应C#7.0的稳定支持),就能实现编译和编辑器的双重支持,不会再出现编辑器报错的情况。
二、编译旧版Roslyn适配VS2015
你之前编译Roslyn成功是因为用的是对应VS2015的分支,现在主干分支的Roslyn已经是为VS2017及以上版本开发的,直接编译肯定会报错。要编译适配VS2015的Roslyn,得这么做:
- 克隆Roslyn仓库后,切换到
dev14分支(这个分支是专门针对VS2015的开发分支)。 - 确保你的电脑上安装了Visual Studio 2015 Update 3及以上版本,不要用VS2017来编译这个分支,版本不匹配会导致大量编译错误。
- 运行仓库根目录的
Restore.cmd脚本,还原所有依赖项。 - 用VS2015打开
Roslyn.sln,编译Roslyn和Microsoft.CodeAnalysis相关的项目。 - 编译完成后,找到输出的
Microsoft.CodeAnalysis.dll等核心文件,替换VS2015安装目录下的对应文件(记得先备份原文件,避免出问题)。
三、备选方案:使用VS2017的兼容模式
如果上述方法都嫌麻烦,你可以安装VS2017,然后在VS2017中打开VS2015的项目,设置项目的语言版本为C#7.0,同时可以选择兼容VS2015的目标框架。这样既能用C#7.0特性,也能确保编译后的程序在VS2015环境下正常运行。
内容的提问来源于stack exchange,提问作者Luis
相关产品推荐
相关产品推荐

