当前位置: 首页 > 编程语言 > C#

在CoreCLR中运行F#分享

时间:2023-04-10 15:28:21 C#

在CoreCLR中运行F#我按照这里的描述编译了CoreCLR和CoreFX。基本上,我可以编译和运行针对CoreCLR的C#代码。下一步是尝试编译和运行F#代码。所以我将FSharp.Core3.1.2.1添加到项目中并编译了一个示例应用程序:fsc^--noframework^--targetprofile:netcore^/r:packagesSystem.Runtime.4.0.20-beta-22703libcontractSystem.Runtime.dll^/r:packagesSystem.Reflection.4.0.10-beta-22703libcontractSystem.Reflection.dll^/r:packagesSystem.Collections.4.0.10-beta-22703libcontractSystem.Collections.dll^/r:packagesSystem.Diagnostics.Debug.4.0.10-beta-22703libcontractSystem.Diagnostics.Debug.dll^/r:packagesSystem.IO.FileSystem.4.0.0-beta-22703libcontractSystem.IO.FileSystem.dll^/r:packagesSystem.Linq.Expressions.4.0.10-beta-22703libcontractSystem.Linq.Expressions.dll^/r:packagesSystem.Console.4.0.0-beta-22703libcontractSystem.Console.dll^/r:packagesSystem.Runtime.Extensions.4.0.10-beta-22703libcontractSystem.Runtime.Extensions.dll^/r:packagesSystem.Runtime.InteropServices.4.0.20-beta-22703libcontractSystem.Runtime.InteropServices.dll^/r:packagesSystem.Text.Encoding.4.0.10-beta-22703libcontractSystem.Text.Encoding.dll^/r:packagesSystem.Text.RegularExpressions.4.0.10-beta-22703libcontractSystem.Text.RegularExpressions.dll^/r:packagesSystem.Threading.Overlapped.4.0.0-beta-22703libcontractSystem.Threading.Overlapped。dll^/r:packagesSystem.Threading.ThreadPool.4.0.10-beta-22703libcontractSystem.Threading.ThreadPool.dll^/r:packagesFSharp.Core.3.1.2.1libportable-net45+netcore45+MonoAndroid1+MonoTouch1FSharp.Core.dll^/out:runtimeHelloWorld.exeHelloWorld.fs可以看到,我建的是FSharp.Core的Profile7当我运行应用程序时,语句lettest=sprintf"Hello,world"失败并出现以下异常:未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集'System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e'或其依赖项之一。该系统找不到指定的文件。在Microsoft.FSharp.Core.PrintfImpl.PrintfBuilderStack..ctor()在Microsoft.FSharp.Core.PrintfImpl.PrintfBuilder`3..ctor()在Microsoft.FSharp.Core.PrintfImpl.Cache`4.generate(Stringfmt)在Microsoft.FSharp.Core.PrintfImpl.f@4277-43[T,TState,TResidue,TResult](Stringkey,UnitunitVar0)在Microsoft.FSharp.Core.PrintfImpl.Cache`4.get(Stringkey)在Microsoft.FSharp.Core.PrintfImpl.Cache`4.Get(PrintfFormat`4键)在Microsoft.FSharp.Core.PrintfModule.PrintFormatToStringThen[TResult,T](FSharpFunc`2继续,PrintfFormat`4格式)在HelloWorld.main(字符串[]args)我也在这里讨论过这个,但我不知道我做错了什么。我是否包含了错误版本的FSharp.Core?Profile7应该工作。在撰写本文时(2015年4月),F#尚未移植到完全支持CoreCLR/CoreFX。CoreCLR和CoreFX目前正在进行大量更改和改进,而开发仍在进行中。在接下来的几个月里,流失率将下降,稳定性将迅速提高,但此时在CoreCLR/FX上构建任何实质性内容都类似于在流沙上构建摩天大楼。目前用于在[LI|U]N[U|I]X上构建和运行F#的Monov.next也在发生重大变化,因为它将Mono平台和框架的大部分替换为来自CoreCLR和CoreFX的程序集和代码.您可能希望跟踪VisualF#问题#387以了解进度。您可能还想跟踪VisualF#问题#336,其中讨论了在CoreCLR上支持F#以进行x平台工作。更新1:现在F#4.0已发布,团队正在开展一组新工作:https://github.com/Microsoft/visualfsharp/issues/563这些工作项目中的关键是向F#添加CoreCLR支持:https://github.com/Microsoft/visualfsharp/issues/499。以上就是C#学习教程:在CoreCLR中运行F#分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处: