Как разработчик Windows может легко заставить свое программное обеспечение хорошо работать под Wine

Многие мои пользователи рассказывают мне, что они хотели бы запустить мое программное обеспечение на своих машинах Linux под Wine.

Но я разработчик Windows, у которого практически нет опыта работы с Linux.

Теперь я мог потратить месяц или два на установку Linux, изучать Linux, устанавливать Wine, изучать Wine и тщательно следить за тем, чтобы мое приложение хорошо работало под Wine. Но я все еще разрабатываю для Windows, поэтому я не хочу уходить так далеко от разработки прямо сейчас.

Итак, что я могу сделать без особых усилий, чтобы моя программа работала как можно быстрее под Wine?


Я нашел эту общую справку по запуску приложений под Wine.

Ответ 1

Загрузите VMWare и виртуальную машину Ubuntu (Ubuntu - популярный дистрибутив Linux) с сайта VMWare. Это обеспечит вам работу Linux O/S в среде Windows без необходимости вручную устанавливать Linux.

Затем вы можете использовать инструкции здесь для установки Wine, эта страница Wiki также предоставляет вам некоторые инструкции о том, как ее использовать.

Если вы выполните то, что предложил Адам Розенфилд и просто попробуйте запустить приложение в Wine без изменений, вы сможете быстро определить, есть ли проблемы. Мое предположение было бы в том, что есть некоторые, иначе ваши пользователи не свяжутся с вами об этом:)

Существует множество способов получения справки по отладке приложений в Wine, ознакомьтесь с веб-сайтом и выберите несколько способов, которые вам подходят. Как всегда, лучше не полагаться на один канал для связи.

Кроме того, если вам удобнее разрабатывать в Windows, подход к использованию виртуальной машины позволит вам скомпилировать ваш код как обычно в Windows и скопировать двоичный файл на виртуальную машину для тестирования (Ubuntu поддерживает просмотр/установку Windows акций).

Ответ 2

До тех пор, пока вы не делаете ничего необычного, например, играете с аппаратным обеспечением или не курите в недокументированных вызовах API и структурах данных, вы должны иметь возможность запускать свой код под Wine с небольшими изменениями или без него. Вино имеет довольно полную реализацию общедоступных API Windows, поэтому, если ваша программа играет хорошо и не путается, она должна просто работать.

Ответ 3

Не используйте слишком много API окон! Не используйте ничего нового от Microsoft;)

Ответ 4

Избегайте использования WPF - это предложение # 1.

Но это действительно не убьет вас, чтобы проверить ваше приложение под Wine. Это не так сложно попробовать; это, конечно, не займет месяцев. Например:

Используйте http://www.ubuntu.com/getubuntu/downloadmirrors#wubi для установки Ubuntu в файл на вашем компьютере с Windows, затем запустите ubuntu и установите последнее Wine из http://winehq.org/download/deb Затем попробуйте запустить программу установки приложений. Если это не сработает, проверьте FAQ по вину, обратитесь за помощью на один из форумов по вине и/или к ошибкам файла в трекер-загрузке вина.

Если вы попробуете своего установщика, потребуется около трех часов от мертвого старта.

Ответ 5

Я был довольно удивлен, когда один из моих приложений Delphi5 просто работал из zip.

Единственный реальный способ, которым это будет работать, - это сделать это самостоятельно, то есть установить vmware и дистрибутив Linux, как предложил Шон. Linux на самом деле не так уж и трудна, и мы все здесь, чтобы помочь.

Сделав быстрый тест, я могу подтвердить, что он в значительной степени работает. Во время запуска есть сообщение ACCVIO 0x34, диалог ошибок можно игнорировать, и приложение запускается, я открыл GEDCOM Стива МакКарти.

Screenshot

Это использовало Wine 1.1.12 под MEPIS 7.9.94-rc1_32 под VMWare. Очень рекомендую использовать VMWare для такого рода вещей.

Ответ 6

С каким языком/платформой вы работаете? В зависимости от того, что это такое, не должно быть никаких проблем с его запуском. Например, если вы используете Java или Python, то они работают очень аккуратно в Linux. Аналогично, если вы являетесь разработчиком .NET, вы можете с некоторой болью получить приложение в Mono.

Ответ 7

Найдите бета-тестеры Linux. Он может сообщать об ошибке разработчикам WINE или обнаруживать ошибку в вашем приложении.

Ответ 8

Вино более чувствительно к ошибкам, чем Windows. Например, Wine будет разбиваться на дескрипторы окон NULL и не сможет создавать окна, если класс недействителен, тогда как Windows более надежна и будет просто обходить ошибку.

Это возможность очистить ваш код.

Я был поражен тем, насколько хорошо Wine запускал мое приложение в первый раз, когда я пытался. Однако мне пришлось избавиться от стороннего компонента, основанного на драйверах.