Кто-нибудь может предоставить хорошее «руководство для идиота» по созданию установщика в VS2008 (C #) Pro? - PullRequest
10 голосов
/ 29 сентября 2010

У меня Visual C # 2008 Professional, и я разработал первую половину приложения C # (режим консоли), а вторая половина находится в стадии разработки (GUI).

Я ищу легкий путь для созданияустановщик для него.Какие шаги необходимо предпринять для создания профессионального установщика?

Есть похожий вопрос здесь в отношении Express Edition, но у меня есть Pro, и я бы хотел как можно большепридерживайтесь только стандартных вещей VS (если вы думаете, что можете убедить меня, что сторонний создатель установщика намного лучше, чем решение только для VS, сделайте это, во что бы то ни стало).

Имейте в виду, что я пока не заинтересован в обновлении до VS2010, даже если создать установщик в сто раз проще.Это может произойти позже, когда доходы начнут накапливаться: -)

Также следует помнить, что GUI-компонент этого приложения является совершенно отдельным исполняемым файлом от консоли.Консольная часть представляет собой простой тип «открыть файл 1, поработать над ним, написать файл 2», а графический интерфейс пользователя является довольно стандартным зверем «открыть файл, сделать что-нибудь», поэтому не возникает хитрого или дико недокументированного поведения.

По сути, я ищу (по крайней мере) следующее:

  • профессионально выглядящий установщик.
  • возможность указать где файлы приложенияgo.
  • вносит изменения в реестр, чтобы разрешить двойной щелчок на моем расширении файла, чтобы открыть приложение с графическим интерфейсом и файл в качестве аргумента.
  • необходимо установить все требуется(мои вещи, .Net, если требуется, и т. д.).

Ответы [ 7 ]

24 голосов
/ 29 сентября 2010

Это может быть немного более напыщенным, чем ответ, но здесь он идет.

Если в клиентском программном обеспечении Windows есть одна проблема, это развертывание приложений.

Мой опыт работы с NovaMind - Несмотря на то, что я потратил несколько недель на решение проблем с настройкой, я ни в коем случае не эксперт по технологии настройки , и я стараюсь сосредоточьтесь на нашем актуальном продукте, когда это возможно. Мы использовали InnoSetup, Visual Studio Setup Project 2008/2010 и, наконец, перешли к подходу WiX + Tools.

Как установить приложение в настоящее время?

Веб-приложения : введите URL-адрес в браузере для доступа к веб-приложению.

Mac: Перетащите загруженный файл (то же самое для x64 и x86) на значок «Приложения» на Mac. Готово.

Windows: Загрузите нужный файл (пользователь должен знать архитектуру x64 и x86), запустите его. Нажмите «Далее» несколько раз, подождите, пока появится UAC, нажмите «Да», а затем надейтесь, что установщик поступил правильно.

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

Как вы обновляете приложения в настоящее время?

Веб-приложения: Нет необходимости. Это актуально.

Mac: Нет встроенной магии, но есть широко используемое и мощное решение под названием Sparkle.

Windows: Вам лучше свернуть свое, потому что там нет ничего существенного.

ClickOnce должен был изменить все это, но его нельзя было использовать в реальных коммерческих приложениях.

Вот краткое изложение:

InnoSetup и другие сценарии установки просты, но не могут создать файл .msi & mdash; Некоторые компании требуют MSI-файлы для автоматизации развертывания сети. Вам также понадобится установка на основе установщика Windows (.msi), если вы хотите получить сертификат Windows Logo.

Visual Studio Setup Project 2008/2010 предоставляет базовые сведения, и вы можете настроить множество вещей, но если вы хотите сделать немыслимое, как , используйте высококачественный значок или включите изменяющийся набор файлов в вашу настройку, вы облажались Нам также приходилось вручную исправлять PackageCode и ProductCode каждый раз, когда мы создавали обновление, поскольку Visual Studio каким-то образом могла испортить версии сборок и при обновлении оставляла более старую сборку, что приводило к повреждению приложения.

WiX - это де-факто способ создания настроек в Windows, и даже Microsoft Office Setup предположительно создается с помощью WiX. WiX не прост. Есть книги для WiX!

К сожалению, один только WiX все еще не является хорошим решением. Мы используем проект загрузчика dotNetInstaller , чтобы убедиться, что установлен .NET Framework, и обернуть файл .msi и загрузчик в один файл .exe, который можно загрузить.

Со всем этим вы в основном в порядке. Всегда бывают странные случаи, когда клиенты не имеют установленного установщика Windows (и поэтому не могут запустить встроенный MSI-файл) или когда происходит сбой установки .NET Framework.

Вещи, которые мы не смогли сделать до сих пор:

  • Локализация нашего установщика!
  • Обеспечение единой загрузки для x64 и x86 - на данный момент мы создаем только установщик x86, потому что мы не хотим, чтобы наши пользователи думали о x64 против x86.
  • есть никПользовательский интерфейс настройки, который также работает с высокими настройками DPI. Я думаю, что это может быть просто не поддерживается в настройке MSI.

Существует бесплатный продукт под названием SharpSetup , который, кажется, решает некоторые из этих проблем и позволяет вам написать пользовательский интерфейс на основе Winforms, но SharpSetup не поставляется с загрузчиком и требует .NET Framework - вы однако вы можете написать свой собственный код C ++, чтобы реагировать в этой ситуации.

Для обновлений в режиме реального времени мы разработали собственное решение, и после многих проблем оно работает нормально.

Возможно, вы также захотите прослушать эпизод подкаста Скотта Хансельмана с Риком Брюстером , где они говорили о настройке и развертывании Paint.NET - пока я поздравляю Рика и команду Paint.NET с хорошей настройкой необходимость такого сложного решения огорчает меня.

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

9 голосов
/ 29 сентября 2010

Другая опция использует Inno Setup . Это позволяет вам полностью настраивать установки, где можно прикреплять файлы на целевой машине, изменять реестр и все такое прочее. Если вы готовы потратить немного больше времени на изучение сценариев, необходимых для достижения желаемых результатов, это очень мощный инструмент. (выполняет все ваши требования и многое другое) И самое главное, это бесплатно =)

Я использовал Inno Setup для всех своих более крупных программ .NET. Когда запускается установщик, он проверяет, установлен ли .NET, а если нет, загружает и устанавливает его. Кроме того, я изменил реестр и сделал ассоциации с расширениями, как вы упомянули. Включение DLL в программу установки также просто - Inno объединит все необходимые файлы в один исполняемый файл, который позаботится обо всем.

Кроме того, поскольку Inno существует с 1997 года, появилось редакторов , которые значительно упрощают процесс написания сценариев.

5 голосов
/ 29 сентября 2010

Я использую Advanced Installer, он просто мертв, и я использую его из-за ограничений VS.

http://www.advancedinstaller.com/

Недостатком является то, что для полностью автоматической установкииз зависимостей вы должны заплатить; -)

1 голос
/ 30 декабря 2010

Если вы хотите полностью создать свой установщик в Visual Studio, но не возражаете против использования внешних инструментов, которые помогут вам в этой работе, взгляните на мою программу под названием SharpSetup . Он позволяет создавать графический интерфейс с использованием C # / WinForms, тогда как бэкэнд основан на WiX (что, в свою очередь, означает использование установщика WIndows).

0 голосов
/ 22 февраля 2011

Хотя я не эксперт по установке, я успешно использовал Wix. Сложно сказать мягко.

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

http://www.installaware.com/ http://www.flexerasoftware.com/products/installshield.htm http://www.wise.com/Products/Installations/WiseInstallationStudio.aspx

Насколько мне известно, все они обеспечивают локализацию, файл / приложение для ассоциации с двойным щелчком, начальную загрузку Framework и местоположение цели. InstallAware и Wise предоставляют некоторую форму поддержки автообновления.

0 голосов
/ 30 сентября 2010

Если вы знаете языки сценариев, вы можете проверить NSIS в качестве альтернативы VS.Там достаточно документации, которую вы можете скопировать, вставить их пример установщика и заменить их расположение на свое.

0 голосов
/ 29 сентября 2010

Visual Studio 2008 имеет встроенную поддержку установки / установки.

Добавьте новый проект в свое решение и выберите параметр «Настройка проекта» в категории «Другие типы проектов> Настройка и развертывание».

Посмотрите Обзор развертывания установщика Windows и пошаговое руководство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...