Как создать простую систему установки для VB6 на XP / Vista и новее? [закрыто]

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

Продолжай и ответь на общий вопрос.

Однако в моих случаях я застрял с некоторыми дополнительными ограничениями. Программа для установки написана на VB6 (или это 5?) И нескольких предыдущих версиях VB, так что это не будет обновляться в ближайшее время. У меня запущенная установка, и у меня будет чистая виртуальная машина, с которой можно поиграть. Поэтому я сделаю цикл: запустите установку, найдите, где она повреждена, исправьте ее, добавьте это в установщик, верните виртуальную машину и попробуйте снова. Если у кого-то есть лучший подход, я открыт для предложений.

Я ДОЛЖЕН заставить его работать на XP, и мне бы очень хотелось иметь что-то, что будет работать и на более новых версиях Windows.

23.08.2008 01:50:44
@sascha Не дубликат, потому что установка программ VB6 немного отличается от установки программ .Net
MarkJ 12.01.2011 09:20:50
7 ОТВЕТОВ
РЕШЕНИЕ

InnoSetup или NSIS , в зависимости от того, что вам кажется проще. ISTool - это хороший инструмент с графическим интерфейсом для InnoSetup, который делает создание сценариев установки еще проще.

11
23.08.2008 02:16:37
Я использую Inno (я не пробовал другой) и считаю его простым в использовании. Немного света на документы, хотя.
BCS 18.09.2008 22:25:32
NSIS отлично! использовал это в течение многих лет. Вы можете сделать чрезвычайно простой установщик, но вы также можете подключиться к нему как угодно.
Nerdtron 10.11.2011 12:18:01

Dependency Walker очень полезен для выяснения, какая DLL отсутствует в установщике. Как только вы знаете dll, вы можете найти, в каком модуле слияния он находится, с помощью Finder Module Finder .

4
23.08.2008 01:57:23
Зависимость Уокер был / действительно / удобен
BCS 18.09.2008 22:24:06

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

1
23.08.2008 02:19:07

Я использовал InnoSetup несколько лет назад, до Vista, и тогда мне это очень понравилось. У меня было всего несколько файлов для установки и значок меню «Пуск». Это работало отлично, и было легко учиться.

5
23.08.2008 03:26:27

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

В большинстве случаев использование Windows Installer похоже на использование кувалды для взлома гайки.

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

Обратите внимание, что поддержка установки сборок в GAC может отсутствовать для некоторых средств установки не Windows Installer (например, InnoSetup).

0
30.08.2008 02:44:20

Я привык любить Inno Setup. Акцент на "привык".

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

Автор знает об этом и отказывается что-либо с этим делать. Имя папки является случайным, поэтому его нельзя добавить в список исключений, который может использовать ваша антивирусная программа.

Очередной раз. Автор знает об этом и предлагает своим пользователям отключить антивирусные программы во время установки. (Как будто это произойдет)

0
11.12.2008 11:51:42
Это проблема с антивирусом. То, что делает установка INNO, совершенно разумно и правильно. Это также лучше, чем выгрузить все во временную папку и запустить оттуда.
bruceatk 11.12.2008 11:58:10

Создание полного пакета установки для программы само по себе является почти предметной областью. Есть много факторов, которые нужно учитывать, и большинство из нас больше не используют Windows 95. Мир не так прост, как раньше.

Есть много вещей, которые необходимо решить, и некоторые из этих проблем «установки» также означают изменение программы. Например, концепция «защищенных папок», которая казалась новой для людей, когда появился Vista UAC. Я предполагаю, что они все работали как администратор или что-то? В простейшем виде это означает, что вы больше не помещаете записываемые файлы рядом с EXE-файлом в «Программы» (он же «Program Files»).

Другим фактором является то, что изменился способ использования реестра. Я не говорю о виртуализации реестра, хотя это тоже часть. Но регистрация COM может быть сделана как для компьютера, так и для пользователя, и даже отключение UAC может испортить это. См. Пользовательские COM-регистрации и Повышенные процессы с UAC в Windows Vista SP1 . В результате пакет установки не должен запускать regsvr32 (или иначе вызывать точку входа self-reg библиотеки COM). Смотрите «Замечания» в Таблице SelfReg .


Установщик Windows - это путь в большинстве случаев. Программисты VB6 имеют бесплатную загрузку Visual Studio Installer 6.0 версии 1.1 для создания пакетов MSI. См. «COM-серверы» в статье о VFP Использование установщика Microsoft Visual Studio для распространения приложений Visual FoxPro 6.0 для получения некоторой ценной информации.

Это не самый простой вариант, но в VSI 1.1 есть мастер настройки VB, который поможет понять основы. Выполнение сложных операций, таких как создание подпапки [CommonAppData] и настройка прав «Все», необходимо выполнить в шаге после сборки вне среды IDE. Вот где сторонние инструменты могут быть полезны, чтобы дать вам больше контроля, не прибегая к Orca или сценариям установщика после сборки.

Те парни, которые создают скриптовые «устаревшие» инсталляторы, стараются не отставать, но скриптинг становится все более и более сложным. Результаты иногда ненадежны. Windows 7 представляет несколько новых собственных морщин.

Хотя ClickOnce на самом деле не лучший вариант для VB6, ничто не говорит о том, что вы не можете использовать безрегулярный COM для установки многих программ XCopy. Reg-free COM может даже быть хорошим вариантом для использования в пакете установщика в этом отношении.


Таким образом, в конце концов, «простейшим» способом развертывания программ VB6, вероятно, будут бесплатные пакеты COM XCopy без регистрации, завернутые в самораспаковывающийся EXE-файл, который запустит скрипт для создания ярлыка в меню «Пуск». Если вы можете жить без ярлыка, это еще проще: просто распакуйте пакет, куда он должен идти!

См. Make My Manifest или альтернативные инструменты для регулярной упаковки COM.

Это требует, чтобы на целевых системах работала XP (предпочтительно SP2) или более поздняя версия. Единственный возможный сбой в этом случае заключается в том, что XP не включала среды выполнения VB6 SP6 до XP SP3, поэтому вам нужно сначала протестировать вашу программу на время выполнения VB6 SP5. Ну, еще один глюк: вы не можете использовать ActiveX EXE таким образом, они все еще требуют регистрации.

1
25.08.2009 13:32:10