Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2013 错误生成F:“;库或多个文件应用程序中的文件必须以名称空间或模块声明开头;_Visual Studio 2013_F# - Fatal编程技术网

Visual studio 2013 错误生成F:“;库或多个文件应用程序中的文件必须以名称空间或模块声明开头;

Visual studio 2013 错误生成F:“;库或多个文件应用程序中的文件必须以名称空间或模块声明开头;,visual-studio-2013,f#,Visual Studio 2013,F#,我有一个名为BasicFunctions.fs的文件,Program.fs使用它。 BasicFunctions.fs在项目中肯定高于Program.fs,因此顺序正确。但我一直在犯这样的错误: 错误1库或多个文件应用程序中的文件必须以命名空间或模块声明开头,例如“namespace SomeNamespace.SubNamespace”或“module SomeNamespace.SomeModule”。只有应用程序的最后一个源文件可以省略此类声明。 我使用的是VS 2013和F#3.1。 以

我有一个名为BasicFunctions.fs的文件,Program.fs使用它。 BasicFunctions.fs在项目中肯定高于Program.fs,因此顺序正确。但我一直在犯这样的错误:

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

我使用的是VS 2013和F#3.1。 以下是示例代码,没有什么特别之处:

基本函数

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
[]
让主argv=
printfn“%A”argv
BasicFunctions.runAll
0//返回整数退出代码
以下是解决方案的屏幕截图:


我发现了这个问题。当您复制并粘贴.fs文件而不是从头创建新文件时,似乎会出现问题。使用google找到此链接:

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

如果您不想重新创建文件,最好实际修改.fsproj文件,以确保Program.fs是最后一个文件。备注部分中的rmunn


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

在哪个文件上出现错误?在文件Program.fsf上您确定在
Program.fs
之后没有更多文件了吗?您的项目是“可执行”还是“库”?你能展示这个项目吗?上传的截图。这是一个控制台应用程序。您能给我们看一下
.fsproj
文件的内容吗?截图没有告诉我需要知道什么。我特别想看到
元素的内容,其中包括
等行。如果
.fsproj
文件太长而无法粘贴,那么至少向我们显示该特定
元素的全部内容。这就是为什么我要求查看您的
.fsproj
文件,尽管现在您已经解决了不必要的问题。我想看看
Program.fs
行是否真的是项目文件中的最后一行,就像Visual Studio所认为的那样。事实证明不是,这就是为什么你有这个问题。很高兴你能独立解决它!只是再次重现了这个问题,事实上,我复制和粘贴的文件仍然位于.fsproj文件中的Program.fs文件之下,即使它在VS studio ui中的顺序正确。我手动编辑了项目文件,现在它可以工作了。