如何在Visual Studio 2015中使用roslyn C#编译器?

LXG

我对罗琳有些困惑。

我做了什么:我已经安装了vs 2015社区版,并以可扩展性下载>下载编译器平台sdk。

因此,我创建了一个简单的控制台应用程序:hello world示例。

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

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

然后,我遵循了一些教程,但都是为了我:从文本文件或字符串vars加载源,分析或更改语法树,然后编译为var。

好了,我很困惑……所以:

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

谢谢

乔什·瓦蒂

因此,您似乎有几个问题:

罗斯林是什么?

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

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

Roslyn还是一个平台,允许您构建可以修改,解释和理解其他程序的程序。并不是说让您编写可以自我修改的代码(尽管这在一定程度上可能)。

Roslyn的常见用例是:

  1. 构建代码分析器,可在Visual Studio中提供错误和警告。
  2. 构建了解源代码的Visual Studio扩展。
  3. 构建其他理解或运行源代码的工具。示例:ScriptCS-使用C#代码编写脚本。

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

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

我可以更换编译器吗?

是的,可以,但是在测试您想回馈给罗斯林的变更之外,我不认为这是个好主意。您可以从GitHub下拉Roslyn,并按照以下说明从Visual Studio中构建和运行Roslyn。

如果遵循这些说明,则可以使用F5运行Roslyn项目。它将使用您的自定义编译器启动Visual Studio的新实例。从现在开始,Microsoft以外的人将通过这种方式为编译器提供功能。(以前,您无法将自定义编译器部署到Visual Studio,但他们在Visual Studio Update 1中对此进行了修复)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2015中使用C#7?

也许是Visual Studio 2015中的C#编译器错误

如何在Visual Studio 2017中使用CMake设置编译器选项

如何在Windows下使用cmake生成使用Intel编译器的Visual Studio项目

Roslyn C#编译器如何启动?

如何在Visual Studio 2015中使用Clang为Windows编译C ++

如何在.NET Core,C#6和Visual Studio 2015中使用本地IIS?

如何在Visual Studio中查看模板编译器错误详细信息

在Visual Studio中使用自编译的Roslyn?

在Visual Studio 2013中使用Roslyn编译器

Visual Studio 2015更新1中C ++的内部编译器错误

如何在VS2015中使用Visual Studio开发服务器

编译器指令如何在Visual Studio 2015中与project.json一起使用

Python 3,如何设置Visual Studio C ++ 2015编译器?

在Visual Studio中使用64位编译器

使用Visual Studio编译器分析内联的C ++函数

如何在Visual Studio Code for TypeScript中完全导入而获得编译器错误消息?

如何在Dymola 2019 FD01中为Visual Studio编译器利用编译器标志

使用g ++编译器在Visual Studio中编译C ++程序会在最后生成%

使用Visual Studio 2017的编译器在C ++ 17中使用Lambda编译Kevlin Henney的Fizzbuzz

如何在Visual Studio 2012 Release 2中获得.less编译器支持?

如何防止输出屏幕在Visual Studio 2013 C ++编译器中消失

C ++:使用Visual Studio编译器时的const指针

Visual Studio 2015中的编译器是什么

如何在Visual Studio中使用更少的自动编译器

哪些编译器选项用于在Visual Studio中编译C ++ STL类/函数?

使用 Visual Studio 2017 构建 SSDT 项目时如何将 /unsafe 标志传递给 C# 编译器

C# 代码在 Visual Studio 2019 中有效,但在在线编译器中无效

如何使用 Visual Studio 编译器在 Windows 上编译 cython 编译的 c 代码