Кодированный установщик - PullRequest
1 голос
/ 14 марта 2011

Можно ли кодировать собственное приложение на c # для создания установщика (я имею в виду код установщика, не использовать установочный проект InstallShield или Visual Studio или что-то еще?

Ответы [ 3 ]

3 голосов
/ 14 марта 2011

Да, это нормально, но я ставлю под сомнение желание -

Проблема с этим заключается в два раза:

  1. Вы делаетемного работы, которую программа установки может сделать для вас, и, вероятно, сделать лучше, поскольку они были тщательно протестированы.Зачем избегать совершенно хорошего инструмента, который делает разумную работу для разработки собственной (вероятно, плохой) замены?

  2. Если вы кодируете это в C #, у вас будет требование, чтобы.NET Framework должен быть установлен до того, как ваш установщик сможет выполнить.Обычно встроенный загрузчик проверяет, установлена ​​ли инфраструктура перед вызовом установщика.

1 голос
/ 14 марта 2011

В некотором смысле, вы собираетесь заново изобретать колесо, и вероятность того, что в зависимости от сложности вашей установки вы ошибетесь, будет велика. Инсталляторы знают, как правильно вызвать api настройки, чтобы зарегистрировать приложение для удаления. Они знают, как правильно установить службу Windows, создать пункты меню «Пуск», настроить ярлыки и т. Д., ....

От всей души рекомендую WiX лично. Он дает вам всю гибкость установки на основе MSI, а также гибкость и простоту сценария на основе xml.

Очень легко написать пакетный скрипт, чтобы скопировать приложение на место и создать несколько записей в реестре. Нетрудно убедиться, что установщик откатит транзакцию, если какая-либо часть установки не удалась. Это присуще установке MSI и является предпочтительным способом доставки приложения.

Если вы не хотите изучать WiX и не заботитесь об использовании установки MSI (основанной на базе данных, транзакционной), хотя бы посмотрите NSIS. Нелегко выполнить базовый установщик всего за пару строк скрипта, и он по крайней мере будет правильно вызывать API установки. Кроме того, вы получаете хороший графический интерфейс. Смотри http://nsis.sourceforge.net

1 голос
/ 14 марта 2011

Если в порядке вы имеете в виду «рекомендуется», то нет, вам следует использовать ClickOnce , это намного проще / быстрее, чем кодировать собственное решение.

...