как: программная установка на windows? - PullRequest
5 голосов
/ 03 марта 2009

Может ли кто-нибудь перечислить шаги, необходимые для программной установки приложения в Windows. Помимо копирования файлов там, где они должны быть, какие дополнительные шаги необходимы для того, чтобы ваше приложение стало первоклассным гражданином в Windows (то есть отображается в списке программ, списке удаления ... и т. Д.)

Я пытался гуглить, но безуспешно.

Кстати: это для неуправляемого приложения c ++ (разработанного в Qt), поэтому я бы предпочел не включать .net framework, если мне не нужно.

Ответы [ 7 ]

10 голосов
/ 03 марта 2009

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

Чтобы добавить программу в список «Установка и удаление программ» (или «Программы и компоненты»), добавьте следующие ключи reg:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAM_NAME]
"DisplayName"="PROGRAM_NAME"
"Publisher"="COMPANY_NAME"
"UninstallString"="PATH_TO_UNINSTALL_PROGRAM"
"DisplayIcon"="PATH_TO_ICON_FILE"
"DisplayVersion"="VERSION"
"InstallLocation"="PATH_TO_INSTALLATION_LOCATION"
7 голосов
/ 03 марта 2009

Я думаю, что тема ответов, которые вы увидите здесь, заключается в том, что вы должны использовать программу установки и что вы не должны писать программу установки самостоятельно . Используйте одного из множества создателей инсталляторов, таких как Inno Setup, InstallSheild или что-то еще, что кто-то рекомендует.

Если вы попытаетесь написать программу установки самостоятельно, вы, вероятно, сделаете это неправильно. Это не против тебя лично. Просто есть много мелких деталей, которые следует учитывать установщику, и множество вещей, которые могут пойти не так, и если вы хотите написать программу установки самостоятельно, вам просто нужно сделать все эти вещи правильно. Это означает много исследований и много испытаний с вашей стороны. Избавь себя от неприятностей.

Помимо копирования файлов, задачи установки могут сильно отличаться в зависимости от потребностей вашей программы. Может быть, вам нужно поместить значок в меню «Пуск»; инструмент инсталлятора должен иметь способ сделать это очень легко, автоматически заполняя место установки, выбранное клиентом ранее при установке, и, возможно, даже выбирая правильный местный язык для ярлыка ярлыка.

Возможно, вам потребуется создать записи реестра, например, для сопоставления файлов или лицензирования. У вашего установщика уже должен быть простой способ указать, какие ключи и значения создавать или изменять.

Возможно, вам потребуется зарегистрировать COM-сервер. Это достаточно распространенное действие, которое, возможно, используется в вашем инсталляционном инструменте как часть операции после копирования файла.

Если есть некоторые действия, которые выбранный вами инструмент установщика еще не обеспечивает, инструмент, вероятно, предложит способ добавления пользовательских действий, возможно, с помощью языка сценариев или, возможно, путем связывания внешнего кода из библиотеки DLL, которую вы будете писать. это входит в ваш установщик. Пользовательские действия могут включать загрузку обновления с определенного веб-сайта, отправку электронной почты или инвентаризацию того, какие другие продукты вашей компании уже установлены.

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

5 голосов
/ 03 марта 2009

Я использовал Inno Setup для упаковки своего программного обеспечения для C ++. Это очень просто по сравнению с мощными решениями, такими как InstallShield. Все может содержаться в одном файле setup.exe, не создавая все эти сумасшедшие пакетные сценарии и т. Д.

Проверьте это здесь: http://www.jrsoftware.org/isinfo.php

2 голосов
/ 03 марта 2009

Похоже, вам нужно проверить систему установщика Windows. Если вам нужна мелочь, см. Официальную документацию . Чтобы узнать новости, прочитайте блог команды установщика . Наконец, поскольку вы программист, вы, вероятно, захотите собрать установщик так, как это сделал бы программист. WiX 3.0 - мой инструмент выбора - открытый исходный код от Microsoft до загрузки. Начните с этого руководства по WiX . Это хорошо.

1 голос
/ 03 марта 2009

Чтобы ваша программа отображалась в меню «Пуск», Вам нужно будет создать папку C: \ Documents and Settings \ Все пользователи \ Пуск, Меню \ Программы и добавил ярлык к программе, которую вы хотите запустить. (Если вы хотите, чтобы ваша заявка была в списке непосредственно в меню «Пуск» или в подменю программ, Вы бы поместили свой короткий путь в соответствующий каталог)

Для программного создания ярлыка вы можете использовать IShellLink (см. Статью MSDN).

Так как вы хотите удалить, это становится намного сложнее, потому что вы не хотите просто удалять DLL или другие общие файлы без проверки зависимостей. Я бы порекомендовал использовать генератор установки / установки, особенно в наше время, когда Vista настолько привередлива, что становится довольно сложно свернуть собственную установку. если вам нужно что-то большее, чем один исполняемый файл и ярлык меню «Пуск».

Я использую Paquet Builder генератор настроек уже несколько лет. (Зарегистрированная версия включает в себя удаление).

1 голос
/ 03 марта 2009

GUI для innosetup (настоятельно рекомендуется): Istool

Вы также можете использовать установщик MSI, встроенный в Visual Studio, это более крутая кривая обучения (то есть боль), но полезная, если вы устанавливаете программное обеспечение в корпоративной среде.

0 голосов
/ 03 марта 2009

У вас уже есть основные шаги. Один из оставленных вами вариантов - установить в меню «Пуск» и предоставить возможность создать значок на рабочем столе и / или значок быстрого запуска.

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

...