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

本文关键字:启用 脚本 2015 VS | 更新日期: 2023-09-27 18:04:37

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

我试过安装各种Nuget软件包,包括Microsoft.CodeAnalysis的1.0和1.1.0-beta1版本。CSharp, Microsoft.CodeAnalysis.Scripting。CSharp等,但我找不到任何我在网上找到的例子。我得到"type not found"错误,即

var scriptEngine = new scriptEngine ();

…失败,因为找不到"ScriptEngine"类型。

有人能提供一个食谱,包括安装哪些nuget包,需要哪些using语句,等等,来实现Roslyn脚本吗?

更新# 1:

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

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

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地狱

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

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

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

微软是这么说的:

在这个版本中,c#交互式窗口和命令行c# REPL窗口又回到了Visual Studio中。(交互窗口是Visual Studio中的REPL窗口。)

我们还发布了脚本api,使您能够构建和运行c#作为脚本。脚本api可在GitHub上获得。

此外,我们还发布了csi.exe,这是一个工具,您可以使用它从开发人员命令提示符运行c#脚本文件(.csx)。例如,只需键入csi myScript。CSX运行脚本文件。或者,您可以进入命令行REPL模式,以交互方式计算c#代码片段。要进入此模式,请在开发人员命令提示符中不带任何参数地运行命令csi。

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