在 Visual Studio 2010 中面向 x64 平台时,F# 项目引用不起作用

cor*_*rax 5 msbuild f# visual-studio-2010

我有一个 F# 库项目,它依赖于一个 C# 类库项目,两者都在同一个解决方案中。基本上在 F# 代码中,我会这样做open MyLib(其中 MyLib 是 C# 项目的名称),并访问 C# 项目中定义的一些代码。

我编译并且两个项目都没有错误或警告地构建。如果我随后将两个项目上的目标从 Any CPU 更改为 x64,C# 项目仍然可以正常构建,但 F# 项目无法构建,错误消息告诉我它找不到模块 MyLib。重建解决方案无济于事。删除所有 bin og obj 文件夹也无济于事。如果我将平台目标更改回 Any CPU 或 x86,一切都会再次编译。

我在一个玩具解决方案中复制了这个,其中有两个只包含琐碎代码的小项目,所以我知道它与我的特定代码无关。

还有其他人经历过吗?任何已知的解决方法?

好好的-h-

更新:根据要求,这里是我的确切复制步骤。

  1. 在 Visual Studio 2010 中创建一个新的空解决方案
  2. 在解决方案中添加一个新的 C# 类库项目,将其命名为 MyLib
  3. int GetAnswer() { return 42; }在 Class1 类中添加静态方法
  4. 向解决方案中添加一个新的 F# 库项目,将其命名为 MyOtherLib
  5. 添加从 F# 库项目到 C# 类库项目的引用
  6. 将此代码添加到 Module1.fsmodule Module1行下方:

    打开我的图书馆

    让答案 = Class1.GetAnswer()

  7. 编译。一切都应该干净利落。

  8. 转到 MyLib 项目属性中的构建选项卡。将平台目标更改为 x64。
  9. 对 MyOtherLib 执行相同操作。
  10. 再建。您现在将在 F# 项目中遇到两个错误,都抱怨未定义命名空间或模块。

更新 2:刚刚使用 Visual Studio 2010 Beta 1 对其进行了测试,行为是相同的。

cor*_*rax 3

好的,我终于得到了微软的一些回应。

事实证明,这是一个错误,显然已在下一版本的 F# 中得到修复。