2016-02-16 2 views
2

У меня есть приложение .NET 3.5, которое использует формы Windows, поэтому ссылается на System.Drawing 2.0.0.0. В mono 3.8 и Monodevelop 5 это решение прекрасно компилируется и может запускаться под Windows или Wine с установкой .NET 3.5.Mono 4 создает приложение .NET 3.5 с System.Drawing 4.0.0.0, как предотвратить?

Однако с Mono 4.2 и Monodevelop 5 и тем же решением & исходный код скомпилированные исполняемые файлы не работают по-прежнему, поскольку они заявляют, что им требуется System.Drawing 4.0.0.0 (исключение не удалось загрузить файл или сборку «System.Drawing , Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a '). Для совместимости приложение должно оставаться на .NET 3.5. (Для информации: установка вина с .NET 4.5 по-прежнему не позволяет запустить этот исполняемый файл, но отдельный тестовый исполняемый файл с использованием функции потоковой передачи .NET 4 работает нормально).

Я вижу из примечаний к выпуску моно 4 в http://www.mono-project.com/docs/about-mono/releases/4.0.0/, что выпуск 4 - это большая новая версия. Из RPM-информации о моно-ядре он также выглядит как версия 3.8, обеспечивающая RPM как System.Drawing 2.0.0.0, так и System.Drawing 4.0.0.0, тогда как mono 4.2 только RPM предоставляет System.Drawing 4.0.0.0. Возможно, это и есть корень проблемы.

Так что я не могу создать необходимые скомпилированные исполняемые файлы. Модернизация с понижением рейтинга нежелательна, так как в версии 4 есть другие другие полезные изменения.

Есть ли у кого-нибудь дополнительная информация или какие-либо обходные пути для этой проблемы?

Благодаря

ответ

0

Начиная с Mono 4.0, как вы отметили, что они прекратили поддержку .NET старше 4,0, чтобы уменьшить нагрузку на техническое обслуживание.

Он по-прежнему будет запустит приложения .NET 3.5 и 2.0 (и 1.0?), Но вы не сможете их построить с помощью Mono 4.x.

Мое предложение состояло бы в том, чтобы ваши официальные машины для сборки были установлены с Mono 3.8.