2010-08-08 9 views
1

Ce qui suit est utilisé pour générer une commande msiexec avec nant:Msiexec ne parvient pas à exécuter (commande générée avec NANT)

> "<exec program="msiexec" 
> timeout="1800000" verbose="true"> 
>    <arg line="/i &quot;${server.msi}&quot;" /> 
>    <arg line="TARGETDIR=&quot;${server.target.path}&quot;" 
> /> 
>    <arg line="INSTALLDIR=&quot;${server.target.path}&quot;" 
> /> 
>    <arg line="ALLUSERS=1" /> 
>    <arg line="/quiet" /> 
>    <arg line="/log &quot;${path::combine(log.path, 
> 'Installation.Server.log')}&quot;" />" 

     </exec> 

commande Th généré est: msiexec (/ i « S: \ work \ Sources \ Installation \ Setup \ LastBuild \ WiseSetup Serveur.msi "TARGETDIR =" C: \ Programmes \ MyProgs \ Serveur "INSTALLDIR =" C: \ Programmes \ MyProgs \ Serveur "ALLUSERS = 1;/quiet/log" C: \ Projets \ P3450 \ Environment \ Logs \ Installation.Server.log ")

Cette commande échoue lorsque la commande/quiet (ou/qn) est supprimée et qu'elle s'exécute correctement. Sinon, il donne l'erreur: Échec du programme externe: msiexec (le code de retour était 1619)

Notez que le "(" et ")" est supprimé et que/quiet est là, il fonctionne avec succès!

+0

Exécuter la commande suivante à partir de la fenêtre cmd et voir si errorlevel est en effet 0 msiexec/i "S: \ Work \ Setup \ Setup \ LastBuild \ WiseSetup Server.msi" TARGETDIR = "C: \ Program Files \ MyProgs \ Serveur "INSTALLDIR =" C: \ Program Files \ MyProgs \ Serveur "ALLUSERS = 1/quiet/log" C: \ Projets \ P3450 \ Environnement \ Logs \ Installation.Server.log " echo% errorlevel% si erreur le niveau est 0 alors exécutez la même commande de nant avec les arguments codés en dur, cela doit fonctionner aussi bien. Commencez ensuite à remplacer les arguments par des variables et exécutez nant après chaque modification. – Moisei

Répondre

0

Activez la journalisation détaillée à l'aide de la commande/l * v au lieu de simplement/log, ouvrez votre fichier journal msi ("Installation.Server.log"), puis recherchez "return value 3" pour accéder directement à l'emplacement l'installation de l'installation a échoué Vous pouvez également utiliser l'analyseur de journal d'installation verbeux du programme d'installation Windows pour analyser le fichier journal si nécessaire.

0

Selon le documentation, le code d'erreur 1619 indique que le package ne peut pas être ouvert.

Ce que cela signifie en général, est que quelque chose a bien un cadenas ouvert sur le fichier au moment Nant tente d'exécuter msiexec - un problème commun si quelqu'un d'autre a l'Explorateur Windows ouvert à S:\Work\Sources\Installation\Setup\LastBuild\WiseSetup Server.msi dans votre exemple, il est probablement juste essayer de générer une vignette. Collez un timeout/wait avant d'exécuter cette tâche nant et voyez si cela vous aide, si c'est le cas, alors quelque chose d'autre a une attente sur votre fichier - cela expliquerait aussi pourquoi il réussit lorsque vous exécutez la commande manuellement, le verrou a été libéré à ce moment-là.

Questions connexes