引用x64 dll文件在C#中有效,但在F中无效#

引用x64 dll文件在C#中有效,但在F中无效#,c#,visual-studio-2010,dll,f#,vtk,C#,Visual Studio 2010,Dll,F#,Vtk,我使用最新的VS 2010创建了两个全新的解决方案: C#控制台应用程序 F#控制台应用程序 我引用了两个x64 dll文件:Kitware.VTK.dll和Kitware.mummy.Runtime.dll (可在此下载:) 当我使用Kitware编写时,C#VS 2010会找到名称空间 当我编写openkitware时,F#vs2010找不到名称空间 x86版本在F#中运行良好。你知道为什么会这样,以及如何让Kitware x64在F#下工作吗?这可能是因为这里描述的错误: 他们说这将

我使用最新的VS 2010创建了两个全新的解决方案:

  • C#控制台应用程序
  • F#控制台应用程序
我引用了两个x64 dll文件:
Kitware.VTK.dll
Kitware.mummy.Runtime.dll

(可在此下载:)

当我使用Kitware编写
时,C#VS 2010会找到名称空间
当我编写
openkitware
时,F#vs2010找不到名称空间


x86版本在F#中运行良好。你知道为什么会这样,以及如何让Kitware x64在F#下工作吗?

这可能是因为这里描述的错误:

他们说这将在VS的下一版本中修复

安好
-控制台应用程序默认以x86为目标,而不是以任何CPU为目标。如果您没有更改,那么F#项目将无法与x64库一起工作。

我想我可能有一个解决方案。它需要手动编辑您的fsproj文件

项之后和第一个
项之前添加此项


真的
--简单溶液
C:\Windows\Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft.NET\Framework64\v2.0.50727
注意,
OtherFlags
被覆盖,这对我来说是可以的,因为它是空的。如果使用了它,您可能应该将其附加到变量。
最好使用
Microsoft.Build.Tasks
作为路径列表,而不是使用硬编码的列表,但我一直无法使其正常工作。

看起来该漏洞出现在VS 2010 beta 1中,并且已经修复。等等,我收回这一点。它至少仍然存在于VS 2010服务包的测试版中。是的,不幸的是,我认为这是一个缺陷,存在于产品的所有已发布版本中。我将把它作为正确答案,因为我不知道还有什么其他原因可能导致它。谢谢你的提示!对不起,我忘了提那件事。我已将x64目标添加到控制台应用程序。
  <PropertyGroup Condition="'$(Platform)' == 'x64'">
    <!--
    Assembly resolution using msbuild is broken for the x64 platform in F# 2.0.
    See https://connect.microsoft.com/VisualStudio/feedback/details/588317/f-project-references-not-working-when-targeting-x64-platform-in-visual-studio-2010
    We use simple resolution with a hard-coded list of paths to look for the dlls instead.
    -->
    <NoStdLib>true</NoStdLib>
    <OtherFlags>--simpleresolution</OtherFlags>
    <ReferencePath>C:\Windows\Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft.NET\Framework64\v2.0.50727</ReferencePath>
  </PropertyGroup>