Создать установщик для приложения .NET, которое может работать в Windows и OS X? - PullRequest
18 голосов
/ 03 августа 2009

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

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

Вот что я знаю:

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

Что я не знаю:

  • Как создать гибкий и надежный установщик, который будет работать с множеством неконтролируемых настольных конфигураций и сред.
  • Как сделать то же самое с Mono для Mac OSX.
  • Каковы общие проблемы при установке широко распространенного приложения для конечных пользователей и как их устранить?

Я ищу лучших ресурсов для заполнения пробелов в знаниях .

Относящиеся

Эквивалент службы Windows в OSX с Mono

Ответы [ 8 ]

13 голосов
/ 03 августа 2009

Для Windows рассмотрим Установщик Windows XML (WiX) . Для OSX вам нужно сгенерировать пакет .app. Вот пример с использованием задач nant, включенных в проект Monobjc .

Вот некоторые основные проблемы, с которыми вы столкнетесь:

В Windows:

  • Ваш установщик должен обнаружить предыдущие / старые версии и закрыть / удалить / перенести как подходящее. И NSIS, и WiX имеют механизмы для этого.
  • Ваш установщик / приложение должно быть совместим с разными версиями Windows (XP, Vista, 7) и разные версии .NET (2.0, 3.0, 3.5 в конце концов). На самом деле тестирование это одна из самых утомительных задач, которые вы лицо. Я настоятельно рекомендую иметь Горстка чистой виртуальной машины изображения вокруг этого.

В OSX:

  • Скорее всего, вы захотите отправить автономный пакет приложений, то есть моно будет включено в ваш .app. Это добавит ~ 50 Мб к вашему дистрибутиву.
  • Для поддержки OSX 10.4 и 10.5 вам придется ссылаться на разные версии Monobjc, для этого вам нужно будет настроить сборку, а также протестировать обе версии.
  • Убедитесь, что ваш код c # не использует специфичные для Windows / .NET вызовы, запустив Mono Migration Analyzer (MoMA) на вашей кодовой базе.

Обновление:

Вы не упомянули, как вы планируете предлагать обновления. NSIS и WiX имеют возможность обрабатывать обновления. Перед развертыванием начальной версии убедитесь, что у вас есть разработанная схема создания версий. В OSX Monobjc может интегрироваться с Sparkle .

6 голосов
/ 03 августа 2009

Существует bitrock , который обрабатывает ваши целевые платформы, но стоит денег

3 голосов
/ 25 августа 2009

http://www.openlina.com/

Они доставляют на сборку один раз, бегают куда угодно, обещают.

2 голосов
/ 28 августа 2009

Вы можете попробовать BitRock's InstallBuilder . С их сайта:

BitRock InstallBuilder является инструмент разработки для строительства кроссплатформенные установщики для рабочего стола и серверное программное обеспечение. С УстановитеBuilder, вы можете быстро создать профессиональные установщики для Linux, Windows, Mac OS X, Solaris и другие платформы из одного файла проекта и создать среду.

2 голосов
/ 03 августа 2009

Для создания установщика есть:

  1. NSIS - бесплатно
  2. InstallShield - Платный

Я не знаю, как узнать о Macs

Проблемы: на компьютере отсутствует .Net Framework

Решение: StackOverflow - состояние компоновщиков для приложений .NET

2 голосов
/ 03 августа 2009

Это может быть или не быть ответом, который вы ищете. Если ваше приложение может выжить в песочнице Silverlight, вы можете попробовать Silverlight 3.0.

Silverlight 3 позволяет вашему приложению работать вне браузера в Windows и Mac.

Вот пример настройки: http://www.silverlightshow.net/items/Silverlight-3-as-a-Desktop-Application-Out-of-Browser-Applications.aspx

0 голосов
/ 01 сентября 2009

Как уже упоминалось, BitRock InstallBuilder поддерживает целевые платформы Windows, Linux и Mac. Я хочу добавить, что он некоторое время использовался самим проектом Mono для распространения двоичного установщика «все в одном» для среды выполнения Mono. Он также используется другими успешными моно-провайдерами, такими как Codice Software

0 голосов
/ 26 августа 2009

То, что вы хотите, это InstallAnywhere . Это позволяет вам ориентироваться на несколько платформ с одним проектом установщика. Это поможет с зависимостями и специфическими проблемами платформы.

Я использовал его при развертывании LINUX / BSD / Windows, и он прекрасно работал. Если у вас были X-windows, вы получили графический интерфейс, если не установить из командной строки. Установщик Windows работал со стандартной технологией установщика Windows и выглядел как профессиональный установщик. Он также поддерживает Mac OS X. Я настоятельно рекомендую это программное обеспечение, оно делает именно то, что вы хотите.

...