【发布时间】:2013-11-10 00:06:15
【问题描述】:
我仍在尝试了解引用项目中的命名空间。
我有一个定义了命名空间(“A”)的 c# 项目。 我创建了一个 F# 应用程序,我在其中引用了 c# 项目。
open A
导致以下结果:
错误 FS0039:命名空间或模块“A”未定义
这是我检查过的:
- C# 和 F# 项目针对同一框架 (.Net Framework 4.5) (F# the namespace or module 'XXXX' is not defined)
- C# 和 F# 项目具有相同的目标(任何 CPU)
- C# 项目在 F# 项目引用中正确列出
- 我正在正确地尝试打开一个命名空间(不是在这种情况下:How to use C# object from F#?)
- 我不是在 FSI 工作 (https://connect.microsoft.com/VisualStudio/feedback/details/632859/difference-in-namespace-reference-between-f-interactive-and-compiled-exe)
MSDN 帮助不大 (http://msdn.microsoft.com/en-us/library/vstudio/dd393787.aspx)。
谢谢。
[编辑]
我是从头开始的,所以这个例子简洁干净。
C# 项目“ClassLibrary1”包含:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibrary1
{
public class Class1
{
}
}
F# 应用程序是:
// Learn more about F# at http://fsharp.net
// See the 'F# Tutorial' project for more help.
open ClassLibrary1
[<EntryPoint>]
let main argv =
printfn "%A" argv
0 // return an integer exit code
错误:
命名空间或模块“ClassLibrary1”未定义
【问题讨论】:
-
你在那个命名空间中确定有 public 类型吗?
-
是的,命名空间包含公共类。
-
你能用 C# 和 F# 制作一个简短但完整的例子吗?
-
A = ClassLibrary1 在示例中。如前所述,我从头开始提供一个简短但完整的示例。我想确保该问题与我的 C# 代码可能存在的任何其他问题无关。谢谢。
-
这里有一条评论让我走上了正确的道路:答案是逐步构建,从 C# 库开始。不知道为什么评论被删除了,但是,嘿,非常感谢!
标签: c# f# namespaces