Самописаный инсталлятор/деинсталлятор
От: Vladimir_S  
Дата: 16.02.15 07:00
Оценка:
Добрый день!

Имеется самописаный инсталлятор/деинсталлятор для приложения.
Появилась необходимость сделать так, чтобы после установки приложение было видно в стандартной панели "Программы и компоненты", а также была возможность запустить деинсталляцию приложения стандартным способом из панели "Программы и компоненты".
Подскажите, как это можно сделать? Где и что почитать, чтобы реализовать требуемый функционал?
Re: Самописаный инсталлятор/деинсталлятор
От: Sergeant_BY Беларусь  
Дата: 16.02.15 07:12
Оценка:
Здравствуйте, Vladimir_S, Вы писали:

V_S>Имеется самописаный инсталлятор/деинсталлятор для приложения.

V_S>Появилась необходимость сделать так, чтобы после установки приложение было видно в стандартной панели "Программы и компоненты", а также была возможность запустить деинсталляцию приложения стандартным способом из панели "Программы и компоненты".
V_S>Подскажите, как это можно сделать? Где и что почитать, чтобы реализовать требуемый функционал?
Add uninstall information to Add/Remove Programs
Create a key with your product name under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall to add entries to the "Add/Remove Programs" section in the Control Panel.
For Windows NT (NT4/2000/XP), it's also possible to create the key in the HKCU hive, so it will only appear for the current user.
There are several values you can write to the key to give additional information about your application and the uninstaller.

А почитать — документацию к любому софту для создания инсталляторов, например NSIS installer.
Re: Самописаный инсталлятор/деинсталлятор
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 16.02.15 07:23
Оценка: 34 (2) -2
Здравствуйте, Vladimir_S, Вы писали:

V_S>Добрый день!


V_S>Имеется самописаный инсталлятор/деинсталлятор для приложения.

V_S>Появилась необходимость сделать так, чтобы после установки приложение было видно в стандартной панели "Программы и компоненты", а также была возможность запустить деинсталляцию приложения стандартным способом из панели "Программы и компоненты".
V_S>Подскажите, как это можно сделать? Где и что почитать, чтобы реализовать требуемый функционал?

Откажитесь от самописного решения и воспользуйтесь NSIS в Windows или стандартными упаковщиками пакетов deb, rpm в Linux. Опять же, если речь о Windows обратите внимание на визуальную среду для NSIS — Venis. Огромное количество возможностей, в том числе бесплатно для коммерческого использования.
Re[2]: Самописаный инсталлятор/деинсталлятор
От: Vladimir_S  
Дата: 16.02.15 08:10
Оценка:
Sergeant_BY, спасибо за помощь.
velkin, использовать NSIS или другой готовый инсталлятор проблематично из-за специфики процесса установки.
Re[3]: Самописаный инсталлятор/деинсталлятор
От: 11molniev  
Дата: 16.02.15 17:54
Оценка:
Здравствуйте, Vladimir_S, Вы писали:

V_S>Sergeant_BY, спасибо за помощь.

V_S>velkin, использовать NSIS или другой готовый инсталлятор проблематично из-за специфики процесса установки.

Вмешаюсь в диалог.
И NSIS и Inno Setup позволяют делать кастомные вещи в процессе установки — из инсталятора будет распакована и вызвана к примеру dll, или на последнем этапе установки уже установленная программа (или другая) будет выполнена к примеру с ключём /install (или кучей других).
Поэтому скорей всего всю вашу специфику можно уложить в один из стандартных инсталяторов и было бы здорово, если вы познакомились с ними ближе.
Re[2]: Самописаный инсталлятор/деинсталлятор
От: Abyx Россия  
Дата: 16.02.15 18:02
Оценка:
Здравствуйте, velkin, Вы писали:

V>Откажитесь от самописного решения и воспользуйтесь NSIS в Windows или стандартными упаковщиками пакетов deb, rpm в Linux. Опять же, если речь о Windows обратите внимание на визуальную среду для NSIS — Venis. Огромное количество возможностей, в том числе бесплатно для коммерческого использования.


ну и сколько приседаний надо сделать чтобы приделать к NSIS кастомный UI, если это вообще возможно? (свое окно, свои контролы)
In Zen We Trust
Re[3]: Самописаный инсталлятор/деинсталлятор
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 16.02.15 18:30
Оценка:
Здравствуйте, Vladimir_S, Вы писали:

V_S>Sergeant_BY, спасибо за помощь.

V_S>velkin, использовать NSIS или другой готовый инсталлятор проблематично из-за специфики процесса установки.

Тогда я солидарен с Sergeant_BY, научитесь пользоваться NSIS, а потом если этого не хватит пишите свой инсталлятор.

чисто для примера, пользователи NSIS (полный список был бы огромен)
  Скрытый текст
Знаменитые пользователи
Adobe Flash Player
Alcohol DVD/CD Emulator
Amazon MP3 Downloader A MP3 Downloader
AMD ATI Video Card Drivers
Android SDK (standalone version)
AVG Free Anti-Spyware Software
Bioware Many Famous Games
City of Heroes MMORPG
Daemon Tools DVD/CD Emulator
DivX Divx Video Codec
Dropbox File Hosting Service
EVE Online MMORPG
FrostWire P2P Client
Google Gmail, Picasa 3, Google Talk, Google Video Services
Intel C Compiler Free Evaluation Version
LEGO Digital Designer
Line 6 Manufacturer of Digital Modelling Guitar Hardware And Software
McAfee Anti-Virus Software
mIRC IRC client
MySpace IM
REAPER Audio/MIDI Production DAW, a.k.a. Winamp's Step Brother
SHOUTcast server, plug-ins Music Streaming System
Siemens Enterprise Networks Enterprise Telecommunication Provider
Sony Ericsson Phone Firmware Update Service
Sun Java Web Start Java Web Start Software
Telltale Games Various Famous Games
Ubisoft Various Famous Games
Winamp Popular Audio Player
Yahoo! IE toolbar, Widgets

Знаменитые пользователи опенсорс
7-zip Open Source Utility For Manipulating Archives
AbiWord Text Processor
Apache Tomcat Servlet Container
Assault Cube Open Source First Person Shooter
Azureus BitTorrent Client
Bacula Network Based Backup Utility
BitTorrent P2P Client
Blender 3D Modeling Program
Bloodshed Dev-C++ C/C++ IDE
Cacti PHP RRDTool Front End
CDEx CD Audio Extractor / Compressor
coLinux Software Which Allows Windows And The Linux Kernel To Run Simultaneously
Debian Linux Distribution
DOSBox DOS Emulator
eMule P2P client
FileZilla Open Source FTP/SFTP Client
Mozilla Firefox Web Browser,Thunderbird 2 Email Client
FreeRADIUS Windows Version Of Open Source RADIUS Server
GeoServer Geospatial Data/map Server
Gpg4win Windows Version of GNU Privacy Guard
gvim GUI Version Of Vim For Windows
K-Meleon Web Browser
KDiff3 Three-Way Diff and Merge Tool
Metasploit Exploit Research Framework
MinGW GNU GCC Compilers on Windows
Miranda IM IM Software
NASA World Wind Earth viewer
OpenOffice Free Cross-Platform Office Application Suite
OpenVPN Open-Source VPN Solution Employing SSL/TLS For Security
Password Safe Password Management Utility
Pidgin Windows Version of Pidgin IM, Formerly Gaim
POPFile E-Mail Filtering Proxy
PowerFolder Widely Spread File Synchronisation And Backup Software
Qt by Nokia Cross Platform Framework for C++, Python, .NET, PHP
RabbitMQ Open Source Messaging
Songbird Open Source Music Player (discontinued)
TightVNC Cross-Platform Remote Desktop Control Software
Ubuntu Wubi Linux Distribution
UltraDefrag Disk Defragmenter
VLC Free Cross-Platform Media Player
WinPcap Network Packets Capture Library
Wireshark Formerly Ethereal, Free Network Protocol Analyzer
Xen Xen Cloud Platform

Возможно вы себя обманываете и вашу задачу можно решить инсталлятором ставшим стандартом, типа NSIS. Другое дело, что в этом случае на форумах обычно начинаются разговоры, а вот тут это нельзя, а здесь то нельзя. А на самом деле потом оказывается, что можно всё и даже гораздо больше, просто уровень программистов, которые говорили, что нельзя был недостаточен. Увы, но доказать, что можно как правило значит решить задачу самому.
Re[3]: Самописаный инсталлятор/деинсталлятор
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 16.02.15 18:58
Оценка: -1
Здравствуйте, Abyx, Вы писали:

A>ну и сколько приседаний надо сделать чтобы приделать к NSIS кастомный UI, если это вообще возможно? (свое окно, свои контролы)


Не понимаю ваше высказывание. Как очень старый виндузятник, который ещё по MSDN сверял коды синих экранов смерти, скажу вам так. Майкрософт постоянно что-нибудь придумывает, и не всегда от хорошего ума. Может быть помните, когда появился стиль XP и манифесты, которые способны были заменить оформление приложений. Все эти редакторы ресурсов и прочее. А потом появился .NET и так далее и тому подобное. Всякие уродские квадратные стили в офисе и даже в paint. Не так давно у майкрософт случил квадратизм головного мозга и Win 8 провалился. Жизнь не стояла на месте, но вопрос не в этом:

1. Зачем вам какие-то уникальные элементы управления в установщике?
2. Зачем тратить кучу времени на создания установщика, когда можно всё сделать быстро и качественно?
3. Может лучше пустить время на написание уникальной программы, а не уникального установщика?

Есть готовый создатель инсталляторов. Там можно настроить всё, графический интерфейс, локализацию при установке, не просто инсталлятор/деинсталлятор, но и контроль версий при установке новой, уже продумано как работать с файловой системой, можно запускать всё, что угодно в процессе установки. Чего лично вам не хватает?

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

Мальчику Вове подарили набор юного слесаря, и он спился за две недели.

Уж извините, но если в наборе разводной ключ и бутылка водки, то и результат один.
Re[4]: Самописаный инсталлятор/деинсталлятор
От: Vladimir_S  
Дата: 17.02.15 08:32
Оценка:
Добрый день!
Я согласен, что лучше использовать готовое решение для инсталляции, а не изобретать свой велосипед. И в начале рассматривал вопрос использования InstallShield. Но пришел к выводу (возможно к ошибочному), что лучше использовать собственный установщик. Иначе пришлось бы очень много логики выносить в dll.
Да к тому же требуется установка программного комплекса на несколько серверов сразу.
Re[5]: Самописаный инсталлятор/деинсталлятор
От: baily Россия  
Дата: 17.02.15 08:54
Оценка:
Здравствуйте, Vladimir_S, Вы писали:

V_S>Добрый день!

V_S>Я согласен, что лучше использовать готовое решение для инсталляции, а не изобретать свой велосипед. И в начале рассматривал вопрос использования InstallShield. Но пришел к выводу (возможно к ошибочному), что лучше использовать собственный установщик. Иначе пришлось бы очень много логики выносить в dll.
V_S>Да к тому же требуется установка программного комплекса на несколько серверов сразу.

Вам нужен свой bootstrapper, а не установщик. Т.е вынесите всю специфичную логику ( в том числе и UI ) в bootstrapper ( некий экзешник с вашим кодом ),
а всю логику копирования и замены файлов, условий запуска и т.п в файл, создаваемый стандартным установщиком, например msi, создаваемый с помощью Wix.
Логика иснатллятора будет примерно следующая:
— дистрибутив состоит либо из bootstrapper и рядом лежащего msi. Либо можно запаковать msi в bootstrapper и распаковывать его при начале установки
— инсталляция стартует с bootstrapper, который делает некие специфичные для вас вещи. Например, что то проверяет, затем запускает ваш UI, чтобы пользователь задал некие настройки,
после чего bootstrapper стартует msi в silent-режиме. В этот момент ваш UI показывает прогресс-диалог. При запуске msi можно передать ему callback, в который будут передаваться
информация о ходе установки — какие действия выполняются и т.п. Их отображают в прогресс-диалоге. По окончании msi-установки, bootstrapper может выполнять еще некий ваш специфичный код.
— Один и тот же bootstrapper может запускать несколько msi.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.