Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
F#在前后更改文件位置和奇怪的名称空间行为后修复了编译问题_F#_F# 3.0 - Fatal编程技术网

F#在前后更改文件位置和奇怪的名称空间行为后修复了编译问题

F#在前后更改文件位置和奇怪的名称空间行为后修复了编译问题,f#,f#-3.0,F#,F# 3.0,我正在使用F#power tools,它为我在F#解决方案中创建文件夹提供了一种便捷的方法 现在,我在解决方案中有两个类似的控制台应用程序项目。两个项目都包含一个util文件夹。 在一个项目中,util文件夹包含带函数的命名空间模块。 在其他项目中,util文件夹包含名称空间的枚举和类定义 名称空间按以下方式完成:ProjectName.Folder 这两个项目都有带有“EntryPoint”主功能的Program.fs文件。Program.fs是解决方案中的最后一个文件。 主函数位于“Proj

我正在使用F#power tools,它为我在F#解决方案中创建文件夹提供了一种便捷的方法

现在,我在解决方案中有两个类似的控制台应用程序项目。两个项目都包含一个util文件夹。 在一个项目中,util文件夹包含带函数的命名空间模块。 在其他项目中,util文件夹包含名称空间的枚举和类定义

名称空间按以下方式完成:ProjectName.Folder

这两个项目都有带有“EntryPoint”主功能的Program.fs文件。Program.fs是解决方案中的最后一个文件。 主函数位于“ProjectName”命名空间内

因为两个文件都有相同的根命名空间,所以当我尝试“打开”子命名空间并使用另一个文件中的代码时,我希望看到Program.fs文件中的子命名空间

这在第一个使用模块的项目中有效,但在另一个包含子命名空间中的类定义的项目中无效。。。当我试图在第二个项目中打开子命名空间时,我需要提供完全限定的命名空间,即使两个文件共享相同的命名空间根

在第一个项目中,我可以直接引用子名称空间,而无需指定根名称空间-它只是可见的

这让我很困惑,尤其是有时我会遇到编译问题,我通过在项目中上下移动带有main()的Program.fs文件来解决这些问题,然后突然我就可以编译了

如果所描述的问题与项目结构(文件)中的问题有关,而这些问题在解决方案资源管理器中是不可见的,或者我是否缺少与F#语法有关的内容,以及与使用名称空间的类(类型)相比,使用(开放)名称空间的模块和函数如何工作,您有什么想法吗? 是否F#powertools在创建文件夹和文件夹内的文件时会以某种方式造成问题

我可以提供代码示例。它们大多取自教程,但我想让问题尽可能简短

编辑1 我刚刚将代码合并到一个新项目中进行测试,结果是, 当我打开一个命名空间模块时,a只能提供该模块的相对命名空间路径,但当我打开一个名称空间以便使用其中定义的类时,我需要提供该命名空间的完全限定路径,即使我是从同一根命名空间打开该命名空间。 有人能证实这种行为吗?
同时,我将深入研究

至于文件夹的文件顺序,请使用xml编辑器检查实际的fsproj。我让PowerTools创建了正确的文件路径,即Folder\MyFile.fs,但将其放在了错误的位置。文件夹中的所有文件必须紧跟在一起。例如,您不能这样下订单:


FolderA\File1.fs、File2.fs、FolderA\File3.fs

当我在F#power tools创建的文件夹中添加新文件时,项目文件有时会出错,我需要使用手动重新排序文件。所以我通常只是将Program.fs向上移动,然后再向下移动到项目的底部,突然,没有错误,所有事情都得到了解决。我知道这很愚蠢,但它比打开项目文件要快得多。谢谢你的评论。