从同一解决方案打开 C# 命名空间,在 F# 中引用项目
本文关键字:项目 引用 命名空间 解决方案 | 更新日期: 2023-09-27 18:37:24
我仍在尝试了解引用项目中的命名空间。
我有一个 c# 项目,其中定义了命名空间 ("A")。我创建了一个 F# 应用程序,其中引用了 c# 项目。
open A
导致以下结果:
错误 FS0039:未定义命名空间或模块"A"
这是我检查过的:
- C# 和 F# 项目面向同一框架 (.Net Framework 4.5)(F# 命名空间或模块"XXXX"未定义)
- C# 和 F# 项目具有相同的目标(任何 CPU) C# 项目
- 正确列在 F# 项目引用中
- 我正在正确尝试打开命名空间(不是在这种情况下:如何使用 F# 中的 C# 对象?
- 我不是在 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
错误:
未定义命名空间或模块"类库 1"
确保引用是真实的项目引用,而不仅仅是引用 bin''Debug 文件夹中的 DLL。
如果无法使实际项目引用正常工作,请确保将 F# 项目设置为依赖于 C# 项目,以便首先由 Visual Studio 生成(右键单击该项目并转到"项目依赖项",然后使用复选框)。
我遇到了同样的问题。我所要做的就是确保我的 C# 项目依赖项都已解决,生成我的 C# 项目,然后 F# 项目能够引用正确的 dll。
在Visual Studio中,可以右键单击每个C#项目,然后按"生成"。在VSCode中,您必须使用终端导航到每个项目并运行dotnet build
。