visual studio 2010 -引用x64 dll文件在c#中工作,但在f#中不工作

本文关键字:工作 但在 文件 2010 studio 引用 dll x64 visual | 更新日期: 2023-09-27 18:01:45

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

  • c#控制台应用程序
  • f#控制台应用程序

我引用了两个x64 dll文件:Kitware.VTK.dllKitware.mummy.Runtime.dll
(可在此下载:http://www.kitware.com/products/avdownload.php)

当我写using Kitware时,c# VS 2010找到命名空间。
当我写open Kitware时,f# VS 2010找不到命名空间。

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

visual studio 2010 -引用x64 dll文件在c#中工作,但在f#中不工作

这可能是由于这里描述的错误:

f#项目引用在Visual Studio 2010中瞄准x64平台时不工作

他们说它将在vs的下一个版本中修复。

都好了- h -

f#控制台应用程序默认针对x86而不是Any CPU。如果您没有更改,那么f#项目将无法与x64库一起工作。

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

将此添加到<PropertyGroup>项之后,<Import>项之前。

  <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>

注意,OtherFlags被覆盖,这对我来说是OK的,因为它是空的。如果使用了它,您可能应该将其附加到变量后面。这将是很好的使用Microsoft.Build.Tasks的路径列表,而不是使用硬编码的列表,但我还没有能够得到的工作。

相关文章: