如何配置VS 2015以启用Roslyn的C#脚本功能?
我已经尝试安装各种Nuget软件包,包括1.0和1.1.0-beta1版本的Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.Scripting.CSharp等,但我无法得到任何一个例子.我发现在网上工作.我收到"未找到类型"错误,即
var scriptEngine = new ScriptEngine();
...失败,因为找不到类型"ScriptEngine".
有人可以提供包含要安装哪些nuget包的配方,需要使用哪些语句等来实现Roslyn脚本?
更新#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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经加载了https://www.myget.org/F/roslyn-nightly/上提供的所有夜间软件包.
我得到一系列构建警告,引用Microsoft.CodeAnalysis,v1.1.0.0.
尽管有警告,但运行exe会产生上面提到的TypeInitilizationException.基于堆栈跟踪,TypeInitializationError是由System.Reflection.Metadata.dll的版本不匹配引起的.
我不知道从哪里开始.我不明白脚本相关的包/组件如何组合在一起.我看到今年早些时候的一些帖子描述了完全建立Roslyn.我没有这样做.这有必要吗?
这让我想起了过去的DLL地狱.