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

ana*_*kic 2 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#";
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Fyo*_*kin 8

您可以使用F#编译器服务.

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