Подтвердить что ты не робот

Запуск приложения .NET 4 с помощью Mono

Я пытаюсь запустить .NET exe на машине Ubuntu (я установил пакет mono-complete), до сих пор не повезло. Приложение скомпилировано с помощью Visual С# Express 2010 под .NET 4 (профиль клиента).

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

mono application.exe

Однако я получаю следующую ошибку:

ПРЕДУПРЕЖДЕНИЕ: поддерживается версия исполнения по этому приложению недоступно. Использование времени выполнения по умолчанию: v1.1.4322

** (application.exe: 5586): ПРЕДУПРЕЖДЕНИЕ **: Отсутствует метод System.Windows.Forms.Application:: SetCompatibleTextRenderingDefault (BOOL) в сборке /usr/lib/mono/gac/System.Windows.Forms/1.0.5000.0__b77a5c561934e089/System.Windows.Forms.dll, ссылка на сборку /media/disk/application.exe

Необработанное исключение: System.MissingMethodException: метод не найдено: 'System.Windows.Forms.Application.SetCompatibleTextRenderingDefault'.

Предположим, что используется .NET 4, а не 1, но я не знаю, как его установить. Я попробовал

mono --runtime=4.0.30319.1 application.exe

Но это тоже не сработало.

Любая помощь будет оценена.

4b9b3361

Ответ 1

Похоже, что вы испытываете эту ошибку:

My Doc Got No Nodes:.net 4 Профиль клиента в Mono 2.8

Предполагается, что вы установили > Mono 2.8 (это был первый релиз для поддержки .NET 4.0). Если нет, вы должны установить более новый пакет Mono.

Другая вещь, о которой нужно помнить, заключается в том, что Mono не поддерживает всю WinForms. Если вы не разработали свое приложение с Mono в виду, есть хороший шанс, что вы обнаружите, что что-то, что вы использовали, не поддерживается.

Ответ 2

Я подозреваю, что исключение связано с тем, что метод System.Windows.Forms.Application.SetCompatibleTextRenderingDefault не был реализован. Запустили ли вы инструмент с помощью Mono Migration Analyzer (MoMA), чтобы узнать, совместимо ли ваше приложение с моно. С этого момента вы можете обойти эту проблему, возможно, даже включить недостающий метод в свой код.

Ответ 3

В текущем моноблочном пакете (даже на Ubuntu Natty) используется mono 2.6.7, который не поддерживает API.NET 4.0. Вам нужно будет создать новую версию mono, которая является лучшим способом получить возможность использования 4.0 API. " Complete" поддержка .NET 4.0, однако, запланирована в моно 3.0.

Ответ 4

Установите Monodevelop и просто щелкните правой кнопкой мыши на example.csprj, который является проектом С#.NET в Linux, и нажмите на Monodevelop.