2010-08-13 3 views
0

alo Tout le monde.WiX Exécuter une application sans condition

Mon problème est double. J'ai un projet WiX sur lequel j'ai travaillé, et j'ai été chargé de le faire exécuter un programme quel que soit l'utilisateur appuyant sur annuler, l'installation étant abandonnée (via une version déjà existante) ou l'utilisateur finissant l'installation avec succès.

J'utilise actuellement le système de diaglog intégré:

<UIRef Id="WixUI_InstallDir" /> 

J'ai actuellement un grand succès à l'exécution de l'application après l'installation terminée. La difficulté a été dans le fait que l'application est au même endroit de l'installateur et je ne peux pas garantir où cela sera. Par conséquent, je la méthode suivante pour exécuter le programme après l'installation a réussi:

<InstallExecuteSequence> 
    <Custom Action="PreventDowngrading" After="FindRelatedProducts">NEWPRODUCTFOUND</Custom> 
    <RemoveExistingProducts After="InstallInitialize" /> 
    <Custom Action="PropertyAssign" Before="InstallFinalize">NOT Installed</Custom> 
    <Custom Action="LaunchFile" After="InstallFinalize">NOT Installed</Custom> 
</InstallExecuteSequence> 


    <CustomAction Id='PropertyAssign' Property='PathProperty' Value='[SourceDir][DRIVEREXEC]' /> 
    <CustomAction Id="LaunchFile" Property="PathProperty" ExeCommand='/S' Return="asyncNoWait" /> 

Les deux actions personnalisées sont utilisées pour exécuter l'application après l'installation terminée. Pour cette raison, je ne peux pas assigner deux actions personnalisées quand le programme existe. OnExit = "erreur" déclenche une exception lorsque deux actions personnalisées ont le même paramètre.

Comment exécuter une application, emplacement inconnu - mais supposé être dans le même répertoire du programme d'installation - inconditionnellement?

Je vous remercie tous pour votre temps et réponses type

Répondre

1

Vous pouvez consulter la documentation WiX sur la façon d'exécuter une application après l'installation: http://wix.sourceforge.net/manual-wix3/run_program_after_install.htm. Cela vous donnera des pointeurs dans le jeu de dialogue WiX UI que vous pourriez modifier si nécessaire.

En outre, SourceDir est une chose très difficile à utiliser: http://robmensching.com/blog/posts/2010/1/26/StackOverflow-what-does-NameSourceDir-refer-to. Idéalement, vous lanceriez l'application installée au lieu de média. Rob, merci pour votre réponse.

+0

Je suis dans la position malheureuse que j'ai besoin de travailler avec un ou plusieurs exécutables qui peuvent être emballés avec les médias. Dans le cas où ils sont, je dois les exécuter. Pour lutter contre cela, j'ai utilisé le SourceDir à la fin, avec un paramètre pour définir où je suis. Mon endgame était en cas d'annulation, d'abandon, etc. - les fichiers exécutables sont toujours activés. Votre conseil mentionne comment faire apparaître la case à cocher dans n'importe quelle situation (abandon - etc) mais cela ne me dit pas comment dire à l'installateur où il se trouve. Je suis désolé je suis plutôt nouveau à ce sujet et je l'ai peut-être manqué. – Hewlett123

+0

Je ne suis pas cette partie de votre question, "mais il ne me dit pas comment dire à l'installateur où il est à". Pouvez-vous clarifier. –

+0

Désolé pour le retard, j'apprécie toute l'aide et le temps que vous passez avec moi. Dans une certaine mesure, j'ai besoin de l'installateur pour être conscient de soi (en ce qui concerne son emplacement). Le programme d'installation doit savoir où il se trouve sur le disque. C'est pourquoi j'utilise SourceDir. (Le programme d'installation dit) Je sais que je suis situé dans c: \ temp \ install, maintenant exécuter le programme d'installation2 à partir de c: \ temp \ install. D'un autre côté, si quelqu'un déplace le programme d'installation, disons à c: \ place, je voudrais que le programme d'installation se tourne et essaie d'exécuter le programme d'installation c: \ place. – Hewlett123

Questions connexes