如何在VS 2015中启用C#脚本?

时间:2015-07-26 02:12:50

标签: c# scripting roslyn c#-6.0

如何配置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());  
      }  
   }  
}  

我已经加载了https://www.myget.org/F/roslyn-nightly/处提供的所有夜间套餐。

我得到一系列构建警告,引用Microsoft.CodeAnalysis,v1.1.0.0。

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

我不知道从哪里开始。我不明白脚本相关的包/组件如何组合在一起。我看到今年早些时候的一些帖子描述了完全建立Roslyn。我没有这样做。这有必要吗?

这让我想起过去的DLL地狱。

2 个答案:

答案 0 :(得分:5)

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

尝试夜莺。

答案 1 :(得分:2)

使用visual studio 2015 update1,REPL又回来了,并启用了脚本api。

以下是微软所说的:

  

在此版本中,C#Interactive Window返回Visual Studio,以及命令行C#REPL窗口。 (交互式窗口是Visual Studio中的REPL窗口。)

     

我们还发布了脚本API,使您能够构建和运行C#作为脚本。 GitHub上提供了脚本API。

     

此外,我们还发布了csi.exe,这是一个可用于从开发人员命令提示符运行C#脚本文件(.csx)的工具。例如,只需键入csi myScript.csx即可运行脚本文件。或者,您可以进入命令行REPL模式以交互式评估C#代码的片段。要进入此模式,请运行命令csi,不要使用Developer Command Prompt中的任何参数。

参考: https://www.visualstudio.com/news/vs2015-update1-vs#Csharp