【问题标题】:CompilationErrorException when including System.Linq in Roslyn CP2在 Roslyn CP2 中包含 System.Linq 时出现 CompilationErrorException
【发布时间】:2013-03-09 05:20:51
【问题描述】:

我已下载 Roslyn CTP 并遇到以下错误。执行 session.Execute(@"using System.Linq;"); 行时会引发 CompilationErrorException,并显示以下消息:

(1,14):错误 CS0234:命名空间“System”中不存在类型或命名空间名称“Linq”(您是否缺少程序集引用?)

我的代码是:

namespace RoslynError
{
    using System;
    using Roslyn.Scripting;
    using Roslyn.Scripting.CSharp;

    internal class RoslynError
    {
        static void Main(string[] args)
        {
            var engine = new ScriptEngine();
            Session session = engine.CreateSession();
            session.Execute(@"using System.Collections;");
            session.Execute(@"using System.Linq;");
            Console.ReadKey();
        }
    }
}

我特别困惑为什么 System.Linq 行会抛出错误而 System.Collections 很好。

【问题讨论】:

    标签: c# linq compiler-construction roslyn


    【解决方案1】:

    引擎需要引用 System.Linq 命名空间所在的程序集 (System.Core.dll)

    engine.AddReference(typeof(System.Linq.Enumerable).Assembly.Location);
    

    这需要在创建会话之前完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多