无法在C#项目中引用F#dll

时间:2010-02-08 23:47:03

标签: c# dll f# reference

如果答案显而易见,请原谅我。

我创建了一个Visual Studio解决方案并添加了两个项目,一个是F#Library(称为MathLibrary),第二个是C#前端(称为frontend,我知道我的创造力)。

所以我在我的前端项目中添加了对MathLibrary DLL的引用,编译了MathLibrary DLL(以确保)并尝试在我的frontend项目中使用它。此时我的编译器抱怨它是一个未定义的引用。我的理解是,添加适当的引用将允许我访问我的DLL,但显然我错过了一个重要的步骤。

任何帮助?

3 个答案:

答案 0 :(得分:1)

.fs文件的名称与其中包含的名称空间/模块之间没有任何关系......除非您完全省略任何名称空间或模块声明;在这种情况下,编译假定一个与文件同名的模块。虽然我很高兴你能够编译,但我认为你没有找到实际的问题/解决方案。

答案 1 :(得分:0)

是否可能显示为Module1.SomeClass。 F#库项目中的默认文件名为Module1,如果您没有使用namespacemodule声明启动源代码文件,则会在模块中生成代码与文件名相同的名称。

您可以尝试将namespace FsLib添加到定义某个类的F#库代码的顶部,然后查看FsLib.SomeClass是否适用于C#。

答案 2 :(得分:0)

F#库是否成功构建?你能看到DLL文件,并且如果你用Reflector打开它,它是否包含任何类和命名空间?

在任何情况下,您还需要添加对FSharp.Core.dll的引用(这是一个包含核心F#类型的库,如列表等,并由F#编译器生成的任何DLL引用)。但是,我想如果您只是需要添加此引用,那么您将收到的错误消息将会有所不同。