2012-05-06 24 views
7

Tôi đang thử mono lần đầu tiên. Dưới đây là các bước tôi đã thực hiện để thiết lập.mono gtk hello world failing, 'Phương pháp bị thiếu'

cài đặt Kubuntu 12.04 LTS trong VirtualBox

apt-get install mono-complete gtk-sharp2 

Sau đó, tôi đã cố gắng chạy các ứng dụng hello world trong hướng dẫn này.

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

Ứng dụng dòng lệnh chạy tốt.

tôi biên soạn các ứng dụng GTK với lệnh sau theo hướng dẫn:

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

Khi tôi chạy ứng dụng nó không thành công với các lỗi sau đây:

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 

Đối với tôi nó trông giống như thư viện mono không tương thích với thư viện gtk-sharp.

Có ai có bất kỳ đề xuất nào về cách tôi có thể làm việc này không?

+6

Điều này có vẻ như đã biết [bug] (https://bugs.launchpad.net/ubuntu/+source/mono/+bug/882501), như đã đề cập trong báo cáo lỗi, bạn có thể thử chạy nó như là 'mono --runtime = v4.0 hello.exe' hoặc biên dịch với 'dmcs' như [được đề xuất bởi marek.safar] (http://stackoverflow.com/a/10474535/925381) –

Trả lời

22

Tất cả 12.04 Phiên bản Ubuntu có mặc định Mono thành cấu hình 4.0 (tương tự như .NET 4.0). Bạn đang biên dịch hello.cs của bạn bằng cách sử dụng trình biên dịch gmcs nhằm mục đích nhắm mục tiêu cấu hình 2.0 (tương tự như .NET 2.0).

Sử dụng trình biên dịch dmcs thay vì gmcs và lỗi sẽ biến mất.