2010-12-01 59 views
2

Dans un projet InstallShield, j'ai une action personnalisée VBScript qui doit conditionnellement exécuter un certain fichier empaqueté avec l'installation.Comment trouver l'emplacement d'installation dans une action personnalisée VBScript pour InstallShield?

Normalement, je reçois le répertoire courant d'un vbs en utilisant un code tel que

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

qui, si elle retourne l'emplacement du Setup.exe qui a initié l'installation, devrait fonctionner.

Toutefois, lors de l'exécution de l'installation, le chemin actuel (sous XP) est C: \ Windows \ system32 au lieu de l'emplacement du fichier Setup.exe auquel je m'attendais.

En supposant que la sortie de mon build InstallShield se présente comme suit

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

Comment pourrais-je exécuter "\ OtherReqs \ ConditionallyRunMe.exe" d'une action personnalisée VBScript?

Merci! (Remarque: Je suis conscient qu'il existe des moyens d'exécuter conditionnellement InstallShield avec des fichiers exe, mais dans ce cas, les exigences ne sont pas prises en charge par InstallShield, sauf si vous pouvez utiliser une valeur de retour d'action personnalisée VBScript comme condition exécuter un autre fichier?)

Répondre

5

Après beaucoup de déconner, je l'ai eu (en fait trouvé dans le manuel InstallShield, et pas Google, allez comprendre :))!

Cette ligne de VBScript le tour est joué

disk1Path = Session.Property("SETUPEXEDIR") 

La ligne ci-dessus points où que le fichier exe d'installation était, donc à partir de là il est trivial d'exécuter un exe inclus avec votre support d'installation.

autres très utiles je trouve que je vais ici autrefois pour référence sont

'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") 

Je ne sais pas pourquoi il est si difficile de trouver une bonne référence sur les propriétés MSI standard (même juste une liste). Le plus proche, j'ai trouvé was this, mais pas tous d'entre eux (et pas spécifiquement pour InstallShield). Si quelqu'un trouve un bon lien avec la documentation sur les propriétés MIS Standard et leur description, s'il vous plaît ajouter un lien ici, donc personne ne doit perdre autant de temps sur ce que j'ai fait :).

+1

Quelque chose comme ceux-ci? http://kb.flexerasoftware.com/doc/Helpnet/InstallShield2011/IHelpPropReference.htm http://msdn.microsoft.com/en-us/library/aa370905.aspx –

+0

@Michael Exactement ce que je cherchais! +1, merci !! – Evan