2010-09-20 4 views
2

J'utilise InstallShield Limited Edition pour Visual Studio 2010 pour créer un programme d'installation et j'essaie d'ajouter une action personnalisée exécutable.Arguments d'action personnalisée InstallShild

Mon action personnalisée dans un exe installé dans le répertoire d'installation. L'action personnalisée doit également utiliser un autre fichier situé dans le répertoire d'installation.

Comment puis-je obtenir le chemin d'accès au répertoire d'installation de mon exe? J'ai essayé de pesser [INSTALLDIR] comme un argument mais il se traduit par "C: \ Program" au lieu du répertoire correct ("C: \ Progam Files \ MyCompany \ MyProduct"). J'ai essayé [TARGETDIR] mais cela se traduit par E: \ (faux aussi).

Des idées?

+0

Soyez prudent lors de l'écriture d'actions personnalisées pour les installations. Il y a une très longue histoire sur le moment où vous devriez ou ne devriez pas écrire cela et comment atténuer les risques qui en découlent. –

Répondre

0

a trouvé le problème.

L'utilisation de [INSTALLDIR] est prévue. le problème est avec powershell. lire C: \ Program Files ... en tant que C: \ Program.

la question est abordée ici:

http://www.leeholmes.com/blog/2006/05/05/running-powershell-scripts-from-cmd-exe/

+1

Je vous aurais suggéré de vous assurer de placer des guillemets autour de [INSTALLDIR] dans votre ligne de commande, par ex. "[INSTALLDIR] MyExe.exe", mais si vous rencontrez toujours le problème de PowerShell, cela n'aidera pas. –

0

EXE actions personnalisées sont très limitées. Si j'utilisais InstallShield LE, je créerais une action personnalisée C# WiX/DTF et la consommerais dans un module de fusion WiX, puis consommerais ce module de fusion dans votre projet InstallShield LE. Cela vous donne une solution très puissante.