2012-05-06 2 views
7

Я пытаюсь моно в первый раз. Вот шаги, которые я предпринял, чтобы настроить его.mono gtk hello world failing, 'Missing method'

Устанавливаемые Kubuntu 12.04 LTS в VirtualBox

apt-get install mono-complete gtk-sharp2 

Затем я попытался запустить привет мир приложений в данном руководстве.

http://www.mono-project.com/Mono_Basics

командной строки приложения побежал отлично.

Я составил приложение GTK с помощью следующей команды в соответствии с инструкциями:

gmcs hello.cs -pkg:gtk-sharp-2.0 

При запуске приложения оно терпит неудачу со следующими ошибками:

Missing method System.Type::op_Inequality(Type,Type) in assembly /usr/lib/mono/2.0/mscorlib.dll, referenced in assembly /usr/lib/mono/gac/gtk-sharp/2.12.0.0__35e10195dab3c99f/gtk-sharp.dll 

Unhandled Exception: System.MissingMethodException: Method not found: 'System.Type.op_Inequality'. 
    at Gtk.Window..ctor (System.String title) [0x00000] in <filename unknown>:0 
    at Hello.Main() [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method not found: 'System.Type.op_Inequality'. 
    at Gtk.Window..ctor (System.String title) [0x00000] in <filename unknown>:0 
    at Hello.Main() [0x00000] in <filename unknown>:0 

Для меня это выглядит как моно библиотеки несовместимы с библиотеками gtk-sharp.

Есть ли у кого-нибудь предложения о том, как я могу заставить это работать?

+6

Это похоже на известную [ошибку] ​​(https://bugs.launchpad.net/ubuntu/+source/mono/+bug/882501), как указано в отчете об ошибке, вы можете попробовать запустить ее как «моно --runtime = v4.0 hello.exe' или скомпилировать с 'dmcs' как [предложенный marek.safar] (http://stackoverflow.com/a/10474535/925381) –

ответ

22

Все выпуски 12.04 Ubuntu имеют Mono по умолчанию для профиля 4.0 (аналогично .NET 4.0). Вы компилируете свой hello.cs с помощью компилятора gmcs, который предназначен для настройки профиля 2.0 (аналогично .NET 2.0).

Используйте компилятор dmcs вместо gmcs, и ошибка исчезнет.