如何配置VS 2015以启用Roslyn的C#脚本功能?

我尝试安装各种Nuget软件包,包括Microsoft.CodeAnalysis.CSharp的1.0和1.1.0-beta1版本,Microsoft.CodeAnalysis.Scripting.CSharp等,但是我无法获得任何示例。已找到在线上类的机会。我收到“找不到类型”错误,即

var scriptEngine = new ScriptEngine();

...失败,因为未找到类型“ScriptEngine”。

有人可以提供配方来包含要安装Roslyn脚本的哪些nuget软件包,需要哪些using语句等吗?

更新#1:

我已经取得了一些进步,但是仍然有问题。我收到一堆编译器警告,然后是TypeInitilizationException,这显然是由于组件版本不匹配所致。

我现在使用以下示例代码(来自测试),并且没有遗漏的类型:

using System;
using Microsoft.CodeAnalysis.Scripting.CSharp;

namespace RoslynScriptingTest {
   class Program {
      static void Main(string[] args) {
         var script = CSharpScript.Create("1 + 2");
         var fn = script.CreateDelegate();
         var value = fn();
         Console.WriteLine("value={0}", value.ToString());
      }
   }
}

我已经加载了https://www.myget.org/F/roslyn-nightly/上所有可用的每晚软件包。

我收到一系列有关Microsoft.CodeAnalysis v1.1.0.0的生成警告。

尽管出现警告,仍然运行exe会产生上面提到的TypeInitilizationException。基于堆栈跟踪,TypeInitializationError是由System.Reflection.Metadata.dll的版本不匹配引起的。

我不确定从这里要去哪里。我不了解与脚本相关的程序包/组件如何组合在一起。我在今年早些时候看到了一些帖子,它们描述了完全 build 罗斯林的过程。我还没有那样做。那有必要吗?

这使我想起了以前的DLL hell 。

最佳答案

脚本API仍在进行中,并已从发行包中删除。

尝试每晚睡一下。

关于c# - 如何在VS 2015中启用C#脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31632984/

10-12 12:42
查看更多