gpt4 book ai didi

f# - 如何解决 "Main module of program is empty: nothing will happen when it is run"

转载 作者:行者123 更新时间:2023-12-03 20:23:30 25 4
gpt4 key购买 nike

我在 F# 解决方案中有两个项目。
1. 主项目与 [EntryPoint] 并设置为 StarUp 项目。
2. support,第二个项目,拥有一组支持模块。 IE。它们只被调用,从不启动任何东西,也不作为入口点,StartUp 项目也不是。

对于支持项目中的最后一个模块,在 Visual Studio 中编译给出

warning FS0988: Main module of program is empty; nothing will happen when it is run



使用 compiler option nowarn 时内联为 #nowarn "988"在导致警告的模块中确实抑制了消息我宁愿添加一个带有解决问题的注释的虚拟函数之类的东西。

如何制作这样一个虚拟函数来解决警告?

编辑

Jack 是正确的,因为我的支持项目设置为 Console Application。而不是 Class Library .更改为 Class Library解决了警告。很高兴知道 do ()对于另一种情况。

编辑

虽然我将支持项目设置为 Console Application 似乎很奇怪。 ,我最近发现由于某种原因,当我对项目中的代码进行更改时,输出类型从 Class LibraryConsole Application .我怀疑它与 F# PowerPack 和它的构建规则有关,但这只是一个猜测。

最佳答案

您是否将支持项目构建为 Library或作为 Console Application ? (这是通过项目属性页面设置的。)

如果您将其构建为库,则可能需要添加 do()在项目中最后一个文件的末尾。这对于让 F# 编译器在某些特定情况下满意是必要的,例如当您创建一个仅包含程序集级属性的模块时(因为它们应用于程序集,该模块对编译器来说是“空的”)。

您可以在我的代码中看到一个示例:
https://github.com/jack-pappas/FSharp.Compatibility/blob/master/FSharp.Compatibility.OCaml/AssemblyInfo.fs

关于f# - 如何解决 "Main module of program is empty: nothing will happen when it is run",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15159387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com