Я начинаю загрязнять руки с помощью F # в Mac OS X, но не могу заставить его работать (версия F # равна 3.1, а версия Mono - 4.0.2). Я использую packet для управления зависимостями и уже установил некоторые библиотеки. Это как мой packet.dependencies
файл выглядит следующим образом:пространство имен или модуль FsCheck не определен
source https://nuget.org/api/v2
nuget Neo4jClient >= 1.0.0.664
nuget FsCheck
mono .paket/paket.exe install
После я получаю связанные зависимости успешно загружены в папку packages
. Автоматически сгенерированный packet.lock
файл выглядит следующим образом:
NUGET
remote: https://nuget.org/api/v2
specs:
FsCheck (2.0.5)
FSharp.Core (>= 3.1.2.5)
FSharp.Core (4.0.0.1)
Microsoft.Bcl (1.1.10)
Microsoft.Bcl.Build (>= 1.0.14)
Microsoft.Bcl.Build (1.0.21)
Microsoft.Net.Http (2.2.29)
Microsoft.Bcl (>= 1.1.10)
Microsoft.Bcl.Build (>= 1.0.14)
Neo4jClient (1.0.0.664)
Microsoft.Net.Http
Newtonsoft.Json (>= 6.0.3)
Newtonsoft.Json (7.0.1)
Я пытаюсь ссылаться на такие библиотеки в моих .fs файлов:
#if INTERACTIVE
#r "./packages/FsCheck/lib/net45/FsCheck.dll"
#endif
open FsCheck
open FsCheck
заявление терпит неудачу с The namespace or module 'FsCheck' is not defined
.
Что я делаю неправильно?
EDIT:
Переключение .fsx
(вместо .fs
) и удаления #if
часть работает отлично. С .fs
компилируется, но при запуске .exe
я получаю следующее исключение (я понимаю, это означает, что .dll
не поставляется по умолчанию, в этом случае Интересно, что общая практика):
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'FsCheck, Version=2.0.5.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
Что дает вам эта ошибка? F # Интерактивный или компилятор? – Foole
@Foole see edit – jarandaf
Я думаю, что обычно система сборки используется для копирования зависимостей в выходной каталог. – Foole