繁体   English   中英

构建F#时出错:“库或多文件应用程序中的文件必须以名称空间或模块声明开头”

[英]Error building F#:“Files in libraries or multiple-file applications must begin with a namespace or module declaration”

我有一个称为BasicFunctions.fs的文件,该文件由Program.fs使用。 BasicFunctions.fs肯定在项目中的Program.fs上方,因此顺序正确。 但是我继续收到这个错误:

错误1库或多文件应用程序中的文件必须以名称空间或模块声明开头,例如'namespace SomeNamespace.SubNamespace'或'module SomeNamespace.SomeModule'。 只有应用程序的最后一个源文件可以省略这样的声明。

我正在将VS 2013与F#3.1一起使用。 这是示例代码,没什么特别的:

BasicFunctions.fs

module BasicFunctions

let runAll = 
    let result = 4
    result

Program.fs

[<EntryPoint>]
let main argv = 
    printfn "%A" argv
    BasicFunctions.runAll        
    0 // return an integer exit code

这是解决方案的屏幕截图:

VS屏幕截图

我发现了问题。 当您复制并粘贴.fs文件而不是从头开始创建新文件时,似乎出现了问题。 使用Google找到了此链接: https : //github.com/Microsoft/visualfsharp/issues/104

为了解决该问题,我删除了两个文件BasicFunctions.fs和BasicFunctions2.fs,并使用VS中的“新建项..”菜单项创建了它们,并确保它们位于主文件Program.fs之前。

如果您不想麻烦地重新创建文件,最好实际修改.fsproj文件,以确保Program.fs是最后一个文件。 在评论部分中, 版权归rmunn所有

现在,它的构建成功了,感谢大家的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM