Roslyn能够解析和编译F#代码吗?

时间:2017-11-11 15:29:44

标签: f# roslyn roslyn-code-analysis

Microsoft.CodeAnalysis.LanguageNames类有一个F#的条目:

public static class LanguageNames
{
    public const string CSharp = "C#";
    public const string VisualBasic = "Visual Basic";
    public const string FSharp = "F#";
}

这让我很兴奋,我想我可以通过切换一个属性让我的用户也使用F#。唉,似乎并非如此。有C#和VB.NET的Roslyn nuget包,但F#没有。

是否支持在Roslyn中计划分析和运行F#代码?

如果没有,您会推荐哪些替代方法来解析和执行F#?

1 个答案:

答案 0 :(得分:6)

您可以使用F# Compiler Service

在Roslyn上使用F#的问题是F#从一开始就是自托管的,而C#和VB编译器是用C ++编写的很长一段时间。当C#和VB最终成长并获得Roslyn时,F#已经拥有了一个完善的编译器和自己的架构。更糟糕的是,在Roslyn中不能轻易地遵循这种架构(尽管我认为他们甚至没有尝试过),因为它大量使用了C#和VB中没有的语言功能。