在F#3.0中使用PSeq的最佳方法是什么?
F#3.0没有动力装置,没有证据表明PSeq包含在3.0中.
我正在尝试使用Infer.Net(用于概率编程的F#库)并在VS11 Beta中运行示例导致错误:
无法加载文件或程序集'FSharp.Core,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.
如果我打开使用Reflector中的infer.net样本的dll,一个,probcomp.dll,说它无法自动找到"FSharp.Core,Version = 4.0.0.0",我需要手动选择位置.
这两件事是否相关?是否有可能使用"固定路径"引用编译probcomp.dll,现在它在我的机器上是不一样的?
PS:当然fsharp项目从头开始工作正常..
PS2:视觉工作室中参考的dll没有显示任何未找到它们的迹象.我可以在对象浏览器中打开它们.
UPDATE
在程序开始时错误发生,没有时间看到任何东西.然而,它发生在程序内:如果未调用以下行
let coinsD = inferExpr <@ coins @>
Run Code Online (Sandbox Code Playgroud)
然后错误不会发生.有了它,在另一个例子中引发了以下错误.不出所料,它来自dll,它的行为在反射器中很奇怪.
无法加载文件或程序集'FSharp.Core,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
在对象浏览器中,所述函数的签名非常奇怪:
public static IDistribution<b>inferExpr<b>(**unknown-type e**)
Run Code Online (Sandbox Code Playgroud)
是的,在我告诉他在打开dll 后在哪里找到Fsharp 4.0.0时,在反射器中,它有签名
public static IDistribution<b> inferExpr<b>(FSharpExpr<b> e);
Run Code Online (Sandbox Code Playgroud)
这个dll必须有某种奇怪的硬链接依赖关系,而且反射器比VS更聪明(或者不是......)来解决它.
为了从坏事中获益,如果你对这个dll中可能发生的事情有所了解,这可能是一个学习的机会.