【问题标题】:F# on MonoDev not able to compile call to Webclient DownloadFileMonoDev 上的 F# 无法编译对 Webclient DownloadFile 的调用
【发布时间】:2013-09-15 18:46:37
【问题描述】:

我已经写了这个简单的代码

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 中放置相同的调用会使编译器抛出此错误

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

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

【问题讨论】:

  • 使用 F# 3.0 编译器对我来说编译得很好。
  • 在 Windows 上是的。我在 monodevelop 中遇到了这个问题。
  • 哦,我忘了说,那是在 Linux 上的。

标签: f#


【解决方案1】:

您使用的是哪个版本的 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 上测试你的 sn-p(使用 Mono 和 F# 的最新版本)。

【讨论】:

    猜你喜欢
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多