如何在 visual studio 2015 中使用 roslyn c# 编译器?

How to use roslyn c# compiler with visual studio 2015?

我对 roslyn 有点困惑。

我做了什么: 我已经安装了 vs 2015 community edition 并在 extensibilty > download compiler platform sdk 下载。

所以我创建了一个简单的控制台应用程序:hello world example。

那么现在我希望在 vs2015 默认编译器和 roslyn 之间选择 c# 编译器...,但我没有找到这样的选项。 所以我的第一个问题是:如何 select 版本的 c# 编译器?

其次,我下载了 master-roslyn 并构建,然后我找到了 csc.exe,奇怪的是,如果我启动 exe 我得到 c# 编译器版本 42.42.42.42。 ???对吗?

然后我学习了一些教程,但都是为了我: 从文本文件或字符串变量加载源并分析或更改语法树,然后编译为 var.

嗯,在这一点上我很困惑......所以:

roslyn 到底是什么?元编译器?这意味着我可以像反射一样在运行时更改我的代码? 第二:如何使用默认csc或选择roslyn的vs2015进行编译? 第三:如果我构建自定义版本的 roslyn 如何使用 Vs2015 编译我的源代码? 哪位知道csc.exe是不是roslyn?没有帮助或命令行打印代号。

谢谢

罗斯林是两件事:

  1. 一个 API 让您看到 "compiler things" 语法树和符号。
  2. 在 #1 之上实现的新 csc.exe。

如果您想对编译器进行 更改 并使用它来构建,请查看 these instructions(如果您还没有)。有几种不同的方法可以制作您自己的 csc.exe 版本,然后使用它来构建一些东西。但是没有您正在寻找的 "choice" 对话框。

看来您有几个问题:

什么是罗斯林?

Roslyn 是 Visual Studio 2015 内的新默认编译器。如果您在 Visual Studio 2015 内构建和 运行ning 应用程序,它们将使用 Roslyn 编译器进行编译.您将可以利用仅在新编译器中可用的所有新 C#6 功能。

如果您使用的是 VS2015,Roslyn 已经完全替换了旧编译器,据我所知您不能在 VS 2015 中使用旧编译器。

Roslyn 也是一个允许您构建可以修改、解释和理解其他程序的程序的平台。它并不是真的要让你编写修改自身的代码(尽管这在一定程度上可能是可能的)。

Roslyn 的常见用例是:

  1. 在 Visual Studio 内提供错误和警告的建筑 Code Analyzers
  2. 为 Visual Studio 构建理解源代码的扩展。
  3. 构建其他理解或 运行 源代码的工具。示例:ScriptCS - 使用 C# 代码编写脚本。

为了将 Roslyn 用于这些目的,您需要从 NuGet 中下载 Microsoft.CodeAnalysis 包。您可以使用这些包来解析代码、分析语法树、分析符号或编译代码并发出 IL。

如果您有兴趣了解有关 Roslyn 的更多信息,我已经开始了一个您可能感兴趣的名为 Learn Roslyn Now 的系列。

我可以更换编译器吗?

是的,你可以,但我不认为除了测试你想要回馈给 Roslyn 的更改之外,这是一个好主意。您可以从 GitHub 拉下 Roslyn 并按照 these instructions 构建和 运行 Roslyn 从 Visual Studio.

如果您按照这些说明进行操作,您将能够使用 F5 运行 Roslyn 项目。它将启动一个使用自定义编译器的 Visual Studio 的新实例。这就是微软以外的人从现在开始为编译器贡献功能的方式。 (以前您无法将自定义编译器部署到 Visual Studio,但他们在 Visual Studio 更新 1 中修复了该问题)。

Roslyn 是 Visual Studio 2015 的默认编译器。因此,如果您安装 VS2015,您已经在使用 Roslyn。

Roslyn 是 .NET Compiler Platform 的代号,它提供开源 C# 和 Visual Basic 编译器。该项目在 github.

可用