К сожалению, я не думаю, что это так увлекательно, как кажется ...
В STSADM, если вы развертываете локальное решение (немедленно), происходит следующее (взломайте Reflector):
base.DeployRetractSolution(solution, urls, userTypedIn, lcid, gacInstallWPPackDlls, true, force);
base.OutputSucceedMessage();
Однако, если вы развертываете решение в ферме (задание таймера), это происходит:
base.CreateSolnDeployTimerJob(strTime, immediate, solution, urls, userTypedIn, SPSolutionDeploymentJobType.Deploy, lcid, gacInstallWPPackDlls, force);
base.OutputSucceedMessage (); просто записывает локализованную языковую версию «Операция успешно завершена» в консоль.
Обе эти вещи работают под капотом, который генерирует STSADM SPOperation (и консольное сообщение «Операция успешно завершена»), но у ближайшего просто есть другой base.OutputSucceedMessage (); .