我开始尝试在Mac上使用F#,但无法正常工作(F#版本是3.1,Mono版本是4.0.2)。我正在使用packet进行依赖管理,并且已经安装了一些库。这是我的packet.dependencies文件的样子:
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 FsCheckopen FsCheck语句失败,返回The namespace or module 'FsCheck' is not defined。
我做错了什么?
编辑:
切换到.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.发布于 2015-08-07 16:58:37
您的路径缺少版本。它应该是
#r "./packages/FsCheck.2.0.5/lib/net45/FsCheck.dll"发布于 2015-10-29 17:55:59
如果您使用的是Xamarin Studio,那么您的项目目标框架可能设置为.NET 4.0。您可以在项目选项>构建>常规中更改此设置。
您还可以在paket.dependencies中指定目标框架。不过,您需要第3步。
framework: net45
source https://nuget.org/api/v2
nuget Neo4jClient >= 1.0.0.664
nuget FsCheckhttps://stackoverflow.com/questions/31873370
复制相似问题