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