Запуск существующего приложения Windows на C # в Linux

Дубликат: Запустите .NET exe в Linux

Привет,

Можно ли заставить мое существующее приложение Windows Forms, созданное с использованием Visual Studio 2008 и .Net framework 2.0, работать в Linux путем перекомпиляции в Linux с меньшим / без изменений кода?

Спасибо


person Josh    schedule 29.04.2009    source источник
comment
Не точный дубликат - но только из-за ошибочного предположения о необходимости перекомпиляции.   -  person MSalters    schedule 29.04.2009


Ответы (4)


вполне возможно, однако, в зависимости от вашего приложения ваш пробег может отличаться. no-nos включают сторонние библиотеки / DLL, которые зависят от вызовов COM и Win32, а также P / Invokes. вам также, возможно, придется следить за кодом, который выполняет конкатенацию файлов / каталогов, поскольку unix использует «/» в качестве разделителя каталогов, а Windows использует «\».

person cruizer    schedule 29.04.2009

Я предлагаю вам перекомпилировать тот же код в Mono IDE и внести любые незначительные изменения, которые могут потребоваться. Я делал это много раз.

person jay_t55    schedule 08.08.2009

Вы можете получить некоторую информацию здесь: Запустите .NET exe в Linux

person Fredrik Mörk    schedule 29.04.2009

да, вы можете, в последний раз я проверял, их DataGridView улучшается, теперь он может скрывать столбцы, однако их VirtualMode на dgv еще не работает.

Я использую Mono в основном для удаленного взаимодействия, тип DateTime теперь поддерживает удаленное взаимодействие (ура!) В Mono 2.4. до (в 1.9) я должен преобразовать свои поля datetime в строку, чтобы их можно было транспортировать с и на средний уровень удаленного взаимодействия, в 2.4 это больше не требуется.

Используйте это руководство для написания переносимого программного обеспечения: http://mono-project.com/Guidelines:Application_Portability

пример:

Чтобы написать переносимое программное обеспечение, вы должны убедиться, что вы используете символ System.IO.Path.DirectorySeparatorChar (http: / monodoc / P: System.IO.Path.DirectorySeparatorChar), когда вы должны объединить пути, или, что еще лучше, используйте символ System .IO.Path.Combine (http: / monodoc / M: System.IO.Path.Combine (string, string)) метод для объединения имен путей.

person Michael Buen    schedule 29.04.2009