Compilation 如何编译并发布一个文件.fsx

Compilation 如何编译并发布一个文件.fsx,compilation,f#,release,f#-interactive,Compilation,F#,Release,F# Interactive,嗨,我用f#和windows窗体制作了一个简单的程序,我如何构建exe,然后将其发送给朋友进行测试?在调试文件夹中,我什么也没找到。可以从FSX文件创建可执行文件,但Visual Studio不支持这种开箱即用的方案。如果您达到这个阶段是因为您第一次使用F#,并且fsx和fs文件之间的差异还不清楚,那么我建议您将代码转换为.fs文件并从中继续 如果你有理由编译一个fsx文件(有一些!),那么请继续阅读 F#编译器本身非常乐意接受FSX文件作为源文件,但您确实需要玩一些技巧 首先,如果脚本文件中有

嗨,我用f#和windows窗体制作了一个简单的程序,我如何构建exe,然后将其发送给朋友进行测试?在调试文件夹中,我什么也没找到。

可以从FSX文件创建可执行文件,但Visual Studio不支持这种开箱即用的方案。如果您达到这个阶段是因为您第一次使用F#,并且fsx和fs文件之间的差异还不清楚,那么我建议您将代码转换为.fs文件并从中继续

如果你有理由编译一个fsx文件(有一些!),那么请继续阅读

F#编译器本身非常乐意接受FSX文件作为源文件,但您确实需要玩一些技巧

首先,如果脚本文件中有任何#load或#r行,则需要将它们包装在一个#if交互式块中

其次,现在必须以正确的顺序向编译器命令行可执行文件提供所有相关引用和代码文件:记住F#是一种顺序相关语言

您可以找到,尽管值得注意的是,如果您使用的是F#的开源版本,编译器称为fsharpc,而不是Visual Studio安装中的fsc

因此,您可能最终运行的命令如下所示:

fsc.exe -r System.Xml --target:exe myProgram.exe MyScript.Things.fsx MyScript.fsx

最近,我一直在为DevOps任务处理.fsx脚本,我发现自己需要这些脚本,以便:

  • 通过CI检查我的脚本的正确性,不要在更改脚本时错误地破坏它们
  • 让他们执行得更快
  • 因此,我决定开始自动化@mavnn在回答中解释的内容

    它是如此的元,以至于我用来编译脚本的工具就是一个脚本本身(因此,如果为了性能而使用它,它可以编译自己,因此不会对性能产生影响)


    我正在公开进行这个项目,并且已经发表了。欢迎投稿。

    from:脚本使用文件扩展名.fsx或.fsscript。您不必编译源代码,然后再运行编译后的程序集,只需运行fsi.exe并指定F#源代码脚本的文件名,F#interactive将读取代码并实时执行。因此,我无法从.fsx脚本创建.exe?True。但是你可以创建(.fs)并编译它。谢谢,我不知道。