Как найти расположение установки в настраиваемом действии VBScript для InstallShield? - PullRequest
2 голосов
/ 02 декабря 2010

В проекте InstallShield у меня есть настраиваемое действие VBScript, которое условно должно выполнить определенный файл, упакованный вместе с установкой.

Обычно я получаю текущий каталог VBS с помощью кода, такого как

sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")

Который, если он вернул расположение Setup.exe, инициировавшего установку, должен работать.

Однако при запуске установки текущий путь (в XP) - C: \ Windows \ system32вместо расположения файла Setup.exe, который я ожидал.

Предполагается, что вывод моей сборки InstallShield выглядит следующим образом

Disk1
->Setup.exe
->ISSetupPrerequisites
-->Req1
-->Req2
-->...
->OtherReqs
-->ConditionallyRunMe.exe

Как запустить "\ OtherReqs \ ConditionallyRunMe".exe "из пользовательского действия VBScript?

Спасибо !!

(Примечание: я понимаю, что есть способы условно запустить exe-файлы с помощью InstallShield, но в этом случае требования не поддерживаютсяInstallShield - разве есть способ использовать возвращаемое значение пользовательского действия VBScript в качестве условия для запуска другого файла?)

1 Ответ

5 голосов
/ 02 декабря 2010

После большого количества возни, я понял (на самом деле нашел это в руководстве по InstallShield, а не в Google, пойди разберись :))!

Эта строка VBScript делает свое дело

disk1Path = Session.Property("SETUPEXEDIR")

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

Другие полезные, которые я нашел, и которые я здесь процитирую для справки:

'points to app data\downloaded install directory
MsgBox Session.Property("SourceDir")
'where the software wants to install to on the users system
MsgBox Session.Property("INSTALLDIR")

Не уверен, почему так сложно найти хороший справочник по свойствам MSI Standard (даже просто список). Самым близким, что я обнаружил , был , но не все из них работают (и вообще не для InstallShield). Если кто-нибудь найдет хорошую ссылку с документацией о свойствах MIS Standard и их описанием, пожалуйста, добавьте сюда ссылку, чтобы никто не тратил на это столько времени, как я:).

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