【问题标题】:How to use roslyn c# compiler with visual studio 2015?如何在 Visual Studio 2015 中使用 roslyn c# 编译器?
【发布时间】:2016-03-12 07:56:46
【问题描述】:

我对 roslyn 有点困惑。

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

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

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

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

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

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

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

谢谢

【问题讨论】:

    标签: c# visual-studio roslyn


    【解决方案1】:

    罗斯林有两件事:

    1. 一种 API,可让您查看语法树和符号等“编译器内容”。
    2. 在 #1 之上实施的新 csc.exe。

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

    【讨论】:

      【解决方案2】:

      看来您有几个问题:

      什么是罗斯林?

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

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

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

      Roslyn 的常见用例是:

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

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

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

      可以更换编译器吗?

      是的,你可以,但我不认为这是一个除了测试你想回馈给 Roslyn 的更改之外的好主意。您可以从 GitHub 下载 Roslyn,然后关注 these instructions 在 Visual Studio 中构建和运行 Roslyn。

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

      【讨论】:

      • 是的,我看到了你的 utube 频道,非常好!请继续提供有关 roslyn 和实际使用的示例和您的视频...谢谢 :),但您知道为什么主版本有 42.42.42.42 作为印刷版本吗?有什么好的理由吗?谢谢
      • 这里是 JoshVarty 在 Roslyn 上的 youtube 频道的链接。确实非常有趣,而且他付出了巨大的努力。 youtube.com/…
      • “你从 NuGet 中下载了 Microsoft.CodeAnalysis 包。” 所以这让我感到困惑。我认为所有这些都应该包含在 VS 2015 中,但我想不是。
      • 如何在 VS 2015 中启用 C#7 ?我知道 withLinqPad 5 beta 我可以使用它,但是在 VS 中我无法将控制台应用程序更改为 C#7 模式......(快速测试:将var t = (7,2); Console.Write($"{t}"); 放入您的 Main 方法中以查看它是否编译并运行: 它应该输出(7, 2))
      • @Matt 不能。 C# 7 只能在 VS 2017 中启用。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-29
        • 1970-01-01
        • 2016-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多