2010-12-01 2 views
2

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

Обычно я получаю текущий каталог через 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 в качестве условия для запустить другой файл?)

ответ

5

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

Эта линия VBScript делает трюк

disk1Path = Session.Property("SETUPEXEDIR") 

Линию выше пунктов, где когда-либо файл установка 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 стандартных свойств (даже просто список). Самое близкое, что я нашел was this, но не все из них работают (и не специально для InstallShield вообще). Если кто-то найдет хорошую ссылку с документацией о свойствах MIS Standard и их описании, пожалуйста, добавьте сюда ссылку, поэтому никто не должен тратить столько времени на это, как я. :).

+1

Что-то вроде этого? http://kb.flexerasoftware.com/doc/Helpnet/InstallShield2011/IHelpPropReference.htm http://msdn.microsoft.com/en-us/library/aa370905.aspx – 2010-12-02 15:06:52