Msiexec не запускается (команда, созданная с помощью NANT) - PullRequest
1 голос
/ 08 августа 2010

Следующее используется для создания команды msiexec с 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>

Th сгенерированная команда: msiexec (/ i "S: \ Work \ Sources \ Installation \ Setup \ LastBuild \ WiseSetup Server.msi "TARGETDIR =" C: \ Program Files \ MyProgs \ Server "INSTALLDIR =" C: \ Program Files \ MyProgs \ Server "ALLUSERS = 1; / quiet / log" C: \ Projects \ P3450 \ Environment \ Logs \ Installation.Server.log ")

эта команда не выполняется, когда удаляется / quiet (или / qn), она выполняется успешно.В противном случае выдает ошибку: Внешняя программа завершилась неудачно: msiexec (код возврата был 1619)

Обратите внимание, что из "(" и ")" удален и / quiet там, он работает успешно!

Ответы [ 2 ]

0 голосов
/ 18 апреля 2011

Согласно документации , код ошибки 1619 указывает, что пакет не может быть открыт.

Обычно это означает, что что-то еще имеет открытую блокировку для файла в то время, когда nant пытается выполнить msiexec - распространенная проблема, если у кого-то еще открыт Windows Explorer для S:\Work\Sources\Installation\Setup\LastBuild\WiseSetup Server.msi в вашем примере это, вероятно, просто попытка создать миниатюру.

Вставьте тайм-аут / ожидание перед выполнением этой задачи nant и посмотрите, поможет ли это, если это так, то что-то еще удерживает ваш файл - это также объясняет, почему это происходит успешно, когда вы запускаете команду вручную,к тому времени замок был снят.

0 голосов
/ 16 апреля 2011

Включите подробное ведение журнала с помощью команды / l * v вместо просто / log, откройте файл журнала msi («Installation.Server.log»), а затем найдите «возвращаемое значение 3», чтобы перейти непосредственно к месту установкиустановка не удалась.Вы также можете использовать подробный анализатор журнала установки Windows для анализа файла журнала, если это необходимо.

...