0

我在Mono的源代码中修改了几行 C# 代码,现在它不再构建:

make[7]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1/mcs/mcs'
make[7]: Entering directory `/home/nico/src/mono-roman/mono-2.10.8.1/mcs/docs'
/usr/bin/make all-local
make[8]: Entering directory `/home/nico/src/mono-roman/mono-2.10.8.1/mcs/docs'
MDOC    [net_4_0] cs-errors.tree
mdoc: There is an error in XML document.
See `mdoc help' for more information.
make[8]: *** [cs-errors.tree] Error 1
make[8]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1/mcs/docs'
make[7]: *** [do-all] Error 2
make[7]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1/mcs/docs'
make[6]: *** [all-recursive] Error 1
make[6]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1/mcs'
make[5]: *** [profile-do--net_4_0--all] Error 2
make[5]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1/mcs'
make[4]: *** [profiles-do--all] Error 2
make[4]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1/mcs'
make[3]: *** [all-local] Error 2
make[3]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1/runtime'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/nico/src/mono-roman/mono-2.10.8.1'
make: *** [build-stamp] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
Build command 'cd mono-2.10.8.1 && dpkg-buildpackage -b -uc' failed.
E: Child process failed

问题是mdoc: There is an error in XML document。MDOC 是一种用于 Mono 的 Javadoc。我很惊讶更改一些良性 C# 行会使 MDOC 失败?

关于这里发生了什么的任何提示?我也不知道这是关于什么 XML 文档。

4

2 回答 2

1

我在评论中发布的初步分析似乎是正确的。MDOC 正在加载cs-errors.config, 并使用新构建的运行时。在加载所述文件时,您所做的更改会产生以下异常:

System.InvalidOperationException: Element 'FilesPath' has wrong order in sequence (expected - -1, actual - 0

这是您的补丁添加的。我猜您可能也想检查一下readBySoapOrder,例如:

if (readBySoapOrder && info.ExplicitOrder != ind)
    throw new InvalidOperationException(string.Format("Element '{0}' has wrong order in sequence (expected - {1}, actual - {2}", Reader.LocalName, info.ExplicitOrder, ind));

有了这个小小的改变,MDOC 很高兴并且编译成功,但我不知道这是否是正确的行为。

于 2012-11-04T00:55:52.420 回答
0

在再次尝试“make”之前尝试“make clean”。

于 2012-11-03T15:30:06.807 回答