C# Roslyn编译器即服务

C# Roslyn编译器即服务,c#,compiler-construction,roslyn,C#,Compiler Construction,Roslyn,我想请您解释一下如何使用roslyn作为服务将其集成到我开发的应用程序中 另外,我如何将它用作从用户处获取代码并生成输出的编译器 我找了很多,但我不明白 我已经开始使用一个简单的解决方案,但存在一些错误: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using Roslyn.Scripting; using Ro

我想请您解释一下如何使用roslyn作为服务将其集成到我开发的应用程序中

另外,我如何将它用作从用户处获取代码并生成输出的编译器

我找了很多,但我不明白

我已经开始使用一个简单的解决方案,但存在一些错误:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Roslyn.Scripting;
using Roslyn.Scripting.CSharp;
namespace RoslynTest
{
    class Program
    {
        static void Main(string[] args)
        {
            ScriptEngine engine = new ScriptEngine();
            Session session = Session.Create();
            engine.Execute("using system;", session);
            engine.Execute("for(int i=0;i<10; i++) console.writeLine(i*1); ", session);
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用系统组件模型;
使用Roslyn.Scripting;
使用Roslyn.Scripting.CSharp;
名称空间罗斯林测试
{
班级计划
{
静态void Main(字符串[]参数)
{
ScriptEngine=新的ScriptEngine();
Session=Session.Create();
执行(“使用系统;”,会话);

Execute(“for(inti=0;i您做得都不对

首先,需要将引用添加到适当的编译器程序集

Roslyn.Compilers.dll
Roslyn.Compilers.CSharp.dll

使用您可能需要的
行添加任何

using Roslyn.Scripting.CSharp;
然后创建引擎、会话并运行代码

var engine = new ScriptEngine();
var session = engine.CreateSession();
session.Execute("using System;");
session.Execute("for (int i = 0; i < 10; i++) Console.WriteLine(i);");
var-engine=newscriptengine();
var session=engine.CreateSession();
执行(“使用系统;”;
session.Execute(“for(inti=0;i<10;i++)Console.WriteLine(i);”;

为什么您认为这应该有效?您是否使用了一些教程或其他东西?这些看起来就像编译过程中常见的语法错误。此外,请确保您引用了所有必需的库,这是一个常见的错误,可能会导致类似的问题。即使已编译,您也知道C是一种区分大小写的语言,right?我是这种编程类型的新手。你有任何有用的教程吗?请Ethax Jeff寻求帮助。但是,我是这种类型的程序的新手。你有任何教程吗。我手边没有任何教程。我的建议是随便玩一下。浏览不同的名称空间和可用的类。让intellisense来指导你。名称u-see通常是一个很好的指标。试着把东西放在一起,看看它是否有效。当然,这需要时间,但这是最好的学习方法之一,尤其是在新技术的情况下。