我在 F# 解决方案中有两个项目。
1.主要项目有[EntryPoint] http://msdn.microsoft.com/en-us/library/dd402151.aspx并设置为启动项目。
2. support,第二个项目,拥有一组支持模块。 IE。它们只是被调用,从不启动任何东西,也不会作为入口点,启动项目也不是。
对于支持项目中的最后一个模块,在 Visual Studio 中编译给出
警告 FS0988:程序主模块为空;什么都不会发生
当它运行时
使用时编译器选项 nowarn http://msdn.microsoft.com/en-us/library/dd233171.aspx内联为#nowarn "988"
在导致警告的模块中确实会抑制该消息,我宁愿添加诸如虚拟函数之类的内容,并带有解决问题的注释。
如何制作这样一个虚拟函数来解决警告?
EDIT
杰克是正确的,因为我的支持项目被设置为Console Application
代替Class Library
。更改为Class Library
解决了警告。很高兴了解do ()
对于另一种情况。
EDIT
虽然我将支持项目设置为Console Application
,我最近发现,由于某种原因,当我对项目中的代码进行更改时,某些内容将输出类型从Class Library
to Console Application
。我怀疑这与 F# PowerPack 及其构建规则有关,但这只是猜测。
您是否将支持项目构建为Library
或作为Console Application
? (这是通过项目属性页面设置的。)
如果您将其构建为库,那么您可能需要添加do()
在项目中最后一个文件的末尾。这对于使 F# 编译器在某些特定场景中满意是必要的,例如当您创建仅包含程序集级属性的模块时(因为它们应用于程序集,所以该模块对编译器来说显示为“空”)。
您可以在此处查看我的代码中的示例:https://github.com/jack-pappas/FSharp.Compatibility/blob/master/FSharp.Compatibility.OCaml/AssemblyInfo.fs https://github.com/jack-pappas/FSharp.Compatibility/blob/master/FSharp.Compatibility.OCaml/AssemblyInfo.fs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)