2010-08-21 86 views
4

我有一个F#库项目,它依赖于C#类库项目,它们都在同一个解决方案中。基本上在F#代码中,我做了open MyLib(其中MyLib是C#项目的名称),并访问C#项目中定义的一些代码。在Visual Studio 2010中定位x64平台时F#项目引用不起作用

我编译和两个项目生成没有错误或警告。如果我然后在两个项目中将目标从任何CPU更改为x64,C#项目仍然可以正常生成,但是F#项目无法生成错误消息,告诉我它无法找到模块MyLib。解决方案的重建无济于事。删除所有bin og obj文件夹也无济于事。如果我将平台目标更改回任何CPU或x86,则所有内容都会再次编译。

我已经在一个玩具解决方案中重现了这个问题,其中包含两个只包含微不足道代码的小项目,所以我知道它与我的特定代码无关。

其他人都遇到过吗?任何已知的解决方法?

很好 -H-

更新:根据要求,这里是我的真实再现步骤。

  1. 在Visual Studio中的一个新的空解决方案2010
  2. 一个新的C#类库项目添加到解决方案,称之为MYLIB
  3. 添加静态方法int GetAnswer() { return 42; }到Class类
  4. 添加新F#库项目的解决方案,称之为MyOtherLib
  5. 从F#库项目添加引用到C#类库项目
  6. 添加该代码Module1.fs,低于module Module1行:

    开放MyLib中

    让答案= Class1.GetAnswer()

  7. 编译。一切都应该建立干净。

  8. 转到MyLib的项目属性中的构建选项卡。将平台目标更改为x64。
  9. 对MyOtherLib也一样。
  10. 重新构建。您现在将在F#项目中得到两个错误,这两个错误都抱怨命名空间或模块未被定义。

更新2:只用Visual Studio 2010 Beta 1测试过,行为是一样的。

+0

不确定电子邮件地址是否仍然有效,但可能要将其提交到[email protected]并查看他们的说法。 – 2010-08-23 12:00:56

+0

@Onorio Catenacci - 我已向MS Connect提交了一个错误报告,因此我们将看到会发生什么 – corvuscorax 2010-08-23 12:04:56

+0

@Onorio:yup,这是正确的电子邮件地址 – pblasucci 2010-08-23 12:08:19

回答

2

好的,所以我终于从微软得到了一些response

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

相关问题