5

session.Execute(@"using System.Linq;");Roslyn CTPをダウンロードし、次のエラーが発生しました。次のメッセージが表示された行を実行すると、CompilationErrorExceptionがスローされます。

(1,14):エラーCS0234:タイプまたは名前空間名'Linq'が名前空間'System'に存在しません(アセンブリ参照がありませんか?)

私のコードは次のとおりです。

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.Collectionsが正常であるのに、System.Linq行がエラーをスローする理由について特に混乱しています。

4

1 に答える 1

8

エンジンには、System.Linq 名前空間が含まれるアセンブリ (System.Core.dll) への参照が必要です。

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

これは、セッションを作成する前に行う必要があります。

于 2013-03-09T08:34:43.777 に答える