错误CS0029:不能隐式转换类型Cairo.Context'“Cairo.Context& # 39;- mo

本文关键字:Context Cairo CS0029 mo 转换 类型 错误 不能 | 更新日期: 2023-09-27 18:07:30

所以显然,我有冲突的版本monol . cairo。我可以在/usr/lib/mon/gac/mon中看到。Cairo有两个文件夹,一个用于版本2.0,另一个来自版本4.0。从我在谷歌上看到的结果来看,这引起了冲突。引起问题的那行代码是using (Cairo.Context ctx = Gdk.CairoHelper.Create (area.GdkWindow))

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

我正在使用Ubuntu 12.04和xmonad,使用最新版本的软件包mono-complete from apt-get。

编译í写:dmcs -pkg:gtk-sharp -pkg:mono-cairo Teikniforrit.cs, teikniforite .cs是一个简单的绘画工具。MCS和GMCS对我没用。我在Windows 7上设置了mono,看看它是如何工作的,它在gmcs上工作得很好,但不是mcs或dmcs。

错误CS0029:不能隐式转换类型Cairo.Context'“Cairo.Context& # 39;- mo

这是很有可能的,你是由相同的错误,我看到了一段时间前,包括在一个有问题的PC文件,Mono提供。我在这个提交中修复了问题,你可以尝试升级你的单声道吗?

您需要具有相同的Cairo"版本"。上下文来使用它。

你可以看到开罗。上下文,就像这样

  1. 现在是开罗2.0版。上下文
  2. 你是在4.0开罗。上下文
  3. 开罗。Context 2.0与开罗比较。上下文4.0
  4. 不一样,因为2.0 != 4.0

这是更好的方式来说明为什么你的代码不能工作。

你的帖子中提到的解决方案解释了这一点,并指定了你如何修复版本,以便在所有情况下都有一个好的版本,并避免这个问题。

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

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

这允许您安装一个新的mono,而无需手动编译它。