2016-06-07 60 views
2

我为我的应用程序创建了一个脚本编辑器,我希望它能够使用Roslyn运行C#和VB.NET脚本。我通过使用Microsoft.CodeAnalysis.CSharp.Scripting程序集/名称空间中的CSharpScript类与C#一起工作,但没有找到与我可以找到的类相同的VisualBasicScript类,也没有Microsoft.CodeAnalysis.VisualBasic.Scripting程序集。我浏览了网页,发现运行VB.NET脚本没有任何用处,Roslyn github网站上的所有示例都是C#特有的。我是否错过了某些东西,还是支持运行VB.NET脚本,而不是像C#脚本那样存在?Roslyn可以用于VB.NET脚本吗?

+0

我还没有走到构建我自己的脚本编辑器的极端(因为Actipro碰巧做出了一个适合我需求的脚本编辑器),但我确实知道(已经在他们的网站上进行了讨论),尽管.net框架(以及扩展的语言)是开放源代码的,但实际的Roslyn引擎/编译器并不像现在这样,它们的语法编辑器不支持.net语言的最新语法细微差别。对不起,这不会直接回答你,因为我不确定,但我强烈怀疑目前的答案会变成否定的。 –

+0

我正在使用第三方工具(Infragistics xamSyntaxEditor)进行实际的文本编辑/语法高亮显示,并且只是围绕它构建一个用于加载/保存脚本以及运行它们并显示其结果的UI。 – StuartMorgan

回答

1

Visual Basic Scripting is not currently available,推测是因为it's not finished

its source is is the Roslyn repo,所以你可以尝试自己建造它。

当我这样做,代码像我下面的作品:

Dim result = VisualBasicScript.RunAsync("Dim result = 1+1").Result 

For Each variable In result.Variables 
    Console.WriteLine($"{variable.Name}: {variable.Value}") 
Next 

但是这个代码不为我工作(编译脚本时失败):

Console.WriteLine(VisualBasicScript.EvaluateAsync("1+1").Result) 

我我不确定这是因为它没有完成,还是与C#脚本有意不同。

+0

感谢您的出色答案和链接。不完全是我所希望的,但很高兴知道它至少在作品中。 – StuartMorgan

相关问题