Я пытаюсь вызвать задачу PSExec из CC.NET и сталкиваюсь с некоторыми трудностями.
Вот проект CC
<project name="Test">
<tasks>
<exec>
<executable>C:\Utilities\psexec.exe</executable>
<buildArgs>-u [UNAME] -p [PWD] "C:\Utilities\Joel.bat"</buildArgs>
</exec>
</tasks>
</project>
Вот источник Joel.bat
CLS
@ECHO OFF
Что происходит, так это то, что в первый раз, когда я заставляю проект строить, он успешно работает. Задание PSExec запускается и выполняется файл Joel.bat. Я получаю некоторую информацию в журнале сборки о кодах выхода, но задача выполнена успешно.
Вот вывод журнала сборки.
PsExec v1.97 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\Utilities\Joel.bat exited with error code 0.
Во второй раз, когда я запускаю сборку, я получаю сообщение об ошибке «Приложение не удалось правильно инициализировать (0xc0000142)». Я не могу запустить сборку более одного раза
Более того, если я попытаюсь отключить службу круиз-контроля .net из службы MSC, она не сможет. Как будто где-то есть замок, который взят и не снят. Единственный способ убить службу - уничтожить процесс ccservices.exe.
Я попробовал ту же самую вещь, используя задачу nant, и получил точно такие же результаты. Это работает в первый раз, и не удается во второй раз, и я не могу остановить процесс.
Я не уверен, что это проблема CC.NET или PSEXEC (или меня, конечно).
У кого-нибудь есть идеи? Я также публикую сообщения на форумах CC.NET.
Я использую последнюю и лучшую версию PSExec и 1.4.4 в CC.NET.
Спасибо, Джоэл