从同一解决方案打开 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"

从同一解决方案打开 C# 命名空间,在 F# 中引用项目

确保引用是真实的项目引用,而不仅仅是引用 bin''Debug 文件夹中的 DLL。

如果无法使实际项目引用正常工作,请确保将 F# 项目设置为依赖于 C# 项目,以便首先由 Visual Studio 生成(右键单击该项目并转到"项目依赖项",然后使用复选框)。

我遇到了同样的问题。我所要做的就是确保我的 C# 项目依赖项都已解决,生成我的 C# 项目,然后 F# 项目能够引用正确的 dll。

在Visual Studio中,可以右键单击每个C#项目,然后按"生成"。在VSCode中,您必须使用终端导航到每个项目并运行dotnet build