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