f# 我如何编译然后发布文件 .fsx

f# how can i compile and then release a file .fsx

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

可以从 FSX 文件创建可执行文件,但开箱即用 Visual Studio 不支持这种情况。如果您因为第一次使用 F# 而达到此阶段,并且不清楚 fsx 和 fs 文件之间的区别,我建议您将代码转换为 .fs 文件并从那里开始。

如果您有理由编译 fsx 文件(有一些!),请继续阅读...

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

首先,如果您的脚本文件中有任何#load 或#r 行,您需要将它们包装在#if INTERACTIVE 块中。

其次,您现在必须设法以正确的顺序向编译器命令行可执行文件提供所有相关参考和您的代码文件:请记住 F# 是一种依赖于顺序的语言。

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

所以你可能会得到 运行 看起来像这样的命令:

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

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

  1. 通过 CI 检查我的脚本的正确性,以免在我对它们进行更改时错误地破坏它们。
  2. 让他们更快地执行

所以我决定开始自动化@mavnn 在他的回答中解释的内容。

它太元了,我编译脚本的工具本身就是一个脚本(因此它可以自我编译,因此如果您想使用它来提高性能,不会对性能产生影响)。

我正在公开开展此项目,并且已将其发布 here in GitLab。欢迎投稿。