【问题标题】:F# on Monodevelop: compiler doesn't understand valid Linux file pathMonodevelop 上的 F#:编译器不理解有效的 Linux 文件路径
【发布时间】:2014-01-06 21:49:28
【问题描述】:

我是 F# 的新手。当我尝试在 Monodevelop 中构建 F# 项目时出现以下错误:

/home/greenrd/git/hello/hello: Error FS0229: Error opening binary file '/usr/lib/mono/4.0/../../../../../usr/lib/mono/gac/kde-dotnet/4.1.0.0_194a23ba31c08164/kde-dotnet。 dll': 找不到路径的一部分 “usr/lib/mono/gac/kde-dotnet/4.1.0.0_194a23ba31c08164/kde-dotnet.dll”。 (FS0229) (你好)

我不认为这是由于 .NET 中 260 个字符的文件路径限制,原因很简单,文件路径只有 102 个字符。可能是什么问题呢? file 说:

/usr/lib/mono/4.0/../../../../../usr/lib/mono/gac/kde-dotnet/4.1.0.0__194a23ba31c08164/kde-dotnet.dll: PE32 可执行文件 (DLL)(控制台)Intel 80386 Mono/.Net 程序集,用于 MS 窗户

我什至不知道这个文件名来自哪里,我没有在任何地方输入这样一个奇怪的文件名。我所做的只是添加 KDE C# 绑定作为对项目的引用。

【问题讨论】:

    标签: linux f# monodevelop


    【解决方案1】:

    .. 的数量超过所需数量时,这看起来像是编译器中的一个错误 - 在这种情况下,编译器似乎会删除前导斜杠。

    更改引用

    /usr/lib/mono/gac/kde-dotnet/4.1.0.0__194a23ba31c08164/kde-dotnet.dll
    

    工作得很好。

    我正在努力追查这个错误。希望今天或明天我会有一个编译器补丁。

    所以在编译器中追逐了一大堆函数之后,事实证明这实际上是一个单声道错误。这种最简单的复制方法是

    new FileStream("/../bin/bash",FileMode.Open,FileAccess.Read,FileShare.ReadWrite);;
    

    应该可以,但不行。

    报告给单声道:https://bugzilla.xamarin.com/show_bug.cgi?id=17083

    编辑:这显然已在最新的单声道中修复 - https://bugzilla.xamarin.com/show_bug.cgi?id=17083

    【讨论】:

    • 我很惊讶以前从未发现过这种错误。很多人使用 Mono...
    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2023-01-05
    • 1970-01-01
    • 2017-07-08
    • 2012-08-12
    相关资源
    最近更新 更多