MonoDev上的F#无法编译调用Webclient DownloadFile

时间:2013-09-15 18:46:37

标签: f#

我写了这个简单的代码

let downloadFile (wc : WebClient) (webUrl : string) (filePath : string) =
    wc.DownloadFile(webUrl, filePath) // no problem
    try
        wc.DownloadFile(webUrl, filePath) // problem!! why???
    with
    | ex -> printfn "%s" ex.Message; ()

这里第一次调用wc.DownloadFile完美编译。

放在里面的同一个调用Try使得comipler抛出这个错误

  

无法从此代码位置访问带有2个参数的成员或对象构造函数“DownloadFile”。方法'DownloadFile'的所有可访问版本都有2个参数。

再次。我在ubuntu的monodevelop上尝试这个。现在我没有我的Windows机器来检查它是否适用于Windows F#。

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的Ubuntu,以及您的系统上安装了哪个版本的Mono?什么版本的F#?您要定位哪个版本的.NET框架?

在您的Mono版本中,System.Net.WebClient.DownloadFile的实现可能不完整或有缺陷。它也可以是运行时本身或你的F#构建。

它看起来很完整,但我想这取决于你的Mono何时建成。您可以将运行时的日期与WebClient.cs的提交历史记录进行匹配,以了解可能缺少的内容。

https://github.com/mono/mono/blob/master/mcs/class/System/System.Net/WebClient.cs https://github.com/mono/mono/commits/master/mcs/class/System/System.Net/WebClient.cs

我可以告诉你,问题不在于MonoDevelop。它适用于Windows 8中的MonoDevelop和Xamarin Studio。通常我是Linux用户,但目前我只有Windows机器。如果我有时间,我明天将在RHEL6上测试你的片段(使用Mono和F#的最新版本)。