1

显然,我的 Mono.Cairo 版本存在冲突。我可以看到 /usr/lib/mono/gac/Mono.Cairo 有两个文件夹,一个用于 2.0 版本,一个用于 4.0 版本。从我在谷歌搜索结果中看到的内容来看,这导致了冲突。导致麻烦的代码行是using (Cairo.Context ctx = Gdk.CairoHelper.Create (area.GdkWindow))

显然,这个问题已经在这里得到了回答,但我不知道他们在说什么。所以我告诉你:有没有办法让 dmcs 使用非冲突的 Cairo.Context?

我正在使用带有 xmonad 的 Ubuntu 12.04,最新版本是来自 apt-get 的软件包 mono-complete。

编译í write: dmcs -pkg:gtk-sharp -pkg:mono-cairo Teikniforrit.cs, Teikniforrit.cs 是一个简单的绘画工具。mcs 和 gmcs 从来没有为我工作过。我在 Windows 7 上设置了单声道,看看它是如何工作的,它在 gmcs 上运行良好,但不是 mcs 或 dmcs。

4

3 回答 3

1

您很可能遇到了我不久前看到的相同错误,该错误包含在 Mono 提供的错误 PC 文件中。我在这个提交中修复了这个问题,你可以尝试升级你的 Mono 吗?

于 2013-04-06T16:08:29.693 回答
0

您需要拥有相同“版本”的 Cairo.Context 才能使用它。

您可以像这样在您的案例中看到 Cairo.Context

  1. 您在 Cairo.Context 的 2.0 中
  2. 您在 Cairo.Context 的 4.0 中
  3. Cairo.Context 2.0 与 Cairo.Context 4.0 进行比较
  4. 不一样,因为 2.0 != 4.0

这是说明您的代码为什么不起作用的更好方法。

您的帖子中引用的解决方案对此进行了解释,并指定了如何修复要使用的版本,以便在所有情况下都拥有良好的版本并避免该问题。

于 2013-04-05T15:03:07.943 回答
0

正如 knocte 所说,这种情况正好对应于 mono 中的一个固定错误。

我遇到了同样的问题,安装新版本的单声道修复了这些问题。由于它尚未集成到最新的 ubuntu 中(13.04),我发现这个链接非常有用:http ://www.meebey.net/posts/mono_3.0_preview_debian_ubuntu_packages/

这使您可以安装较新的单声道,而无需手动编译它。

于 2013-05-13T11:35:28.470 回答