Ссылка на файл x64 dll работает в C #, но не работает в F # - PullRequest
3 голосов
/ 12 июля 2011

Я создал два совершенно новых решения с использованием последней версии VS 2010:

  • Консольное приложение C #
  • Консольное приложение F #

Я ссылался на дваФайлы x64 dll: Kitware.VTK.dll и Kitware.mummy.Runtime.dll
(можно загрузить здесь: http://www.kitware.com/products/avdownload.php)

C # VS 2010 находит пространство имен при записи using Kitware.
F # VS 2010 не находит пространство имен, когда я пишу open Kitware.

Версия x86 отлично работает в F #.Любая идея, почему это так и как заставить Kitware x64 работать в F #?

Ответы [ 3 ]

1 голос
/ 12 июля 2011

Вероятно, это связано с ошибкой, описанной здесь:

Ссылки проекта F # не работают при таргетинге на платформу x64 в Visual Studio 2010

Говорят, что это будет исправлено в следующей версии VS.

будь здоров -h-

0 голосов
/ 03 декабря 2012

Я думаю, что могу исправить это.Это требует ручного редактирования вашего файла 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 перезаписано, что было в порядкедля меня как было пусто.Если он используется, вы, вероятно, должны вместо этого добавить переменную.Было бы неплохо использовать Microsoft.Build.Tasks для списка путей вместо использования жестко закодированного списка, но я не смог заставить это работать.

0 голосов
/ 12 июля 2011

Консольные приложения F # по умолчанию ориентированы на x86, а не на любой процессор. Если вы этого не изменили, проект F # не будет работать с библиотекой x64.

...