Monodevelop上的F#:编译器无法理解有效的Linux文件路径

时间:2014-01-06 21:49:29

标签: linux f# monodevelop

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

  

/ home / greenrd / git / hello / hello:错误FS0229:打开二进制文件时出错   “/usr/lib/mono/4.0/../../../../../usr/lib/mono/gac/kde-dotnet/4.1.0.0_194a23ba31c08164/kde-dotnet。 DLL“:   找不到路径的一部分   “usr / lib中/单声道/ GAC / KDE-DOTNET / 4.1.0.0 _194a23ba31c08164 / KDE-dotnet.dll”。   (FS0229)(你好)

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

  

/usr/lib/mono/4.0 /../../../../../ usr / lib中/单声道/ GAC / KDE-DOTNET / 4.1.0.0__194a23ba31c08164 / KDE-dotnet.dll:   PE32可执行文件(DLL)(控制台)Intel 80386 Mono / .Net程序集,用于MS   视窗

我甚至不知道这个文件名来自哪里,我没有在任何地方输入这么奇怪的文件名。我所做的就是添加KDE C#绑定作为项目的参考。

1 个答案:

答案 0 :(得分:4)

..比需要的更多时,这看起来像编译器中的错误 - 在这种情况下,编译器会丢弃前导斜杠。

更改

的引用
/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