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

У меня есть проект библиотеки F #, который зависит от проекта библиотеки классов C #, оба в одном и том же решении. По сути, в коде F # я делаю open MyLib (где MyLib - это имя проекта C #) и обращаюсь к некоторому коду, определенному в проекте C #.

Я компилирую, и оба проекта собираются без ошибок и предупреждений. Если затем я изменю цель с Любого ЦП на x64 в обоих проектах, проект C # по-прежнему будет работать нормально, но проект F # не будет создан с сообщениями об ошибках, сообщающими, что он не может найти модуль MyLib. Перестройка решения не помогает. Удаление всех папок bin og obj также не помогает. Если я изменю цель платформы обратно на Любой процессор или на x86, все снова скомпилируется.

Я воспроизвел это в игрушечном решении с двумя небольшими проектами, содержащими только тривиальный код, поэтому я знаю, что это не связано с моим конкретным кодом.

Кто-нибудь еще испытал это? Любые известные обходные пути?

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

Обновление: по запросу, вот мои точные шаги воспроизведения.

  1. Создание нового пустого решения в Visual Studio 2010
  2. Добавьте в проект новый проект библиотеки классов C #, назовите его MyLib
  3. Добавить статический метод int GetAnswer() { return 42; } к классу Class1
  4. Добавьте в проект новый проект библиотеки F #, назовите его MyOtherLib
  5. Добавить ссылку из проекта библиотеки F # в проект библиотеки классов C #
  6. Добавьте этот код в Module1.fs, под строкой module Module1:

    открыть MyLib

    let answer = Class1.GetAnswer ()

  7. Compile. Все должно строиться чисто.

  8. Перейдите на вкладку сборки в свойствах проекта для MyLib. Измените цель платформы на x64.
  9. Сделайте то же самое для MyOtherLib.
  10. Построить снова. Теперь вы получите две ошибки в проекте F #: обе жалуются на то, что пространство имен или модули не определены.

ОБНОВЛЕНИЕ 2: только что протестировал его с Visual Studio 2010 Beta 1, и поведение остается тем же.

1 Ответ

2 голосов
/ 19 февраля 2011

ОК, так что я наконец-то получил ответ от Microsoft.

Оказывается, это ошибка, которая, по-видимому, была исправлена ​​в следующей версии F #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...