对于这样的命令:
C:\>stsadm -o upgradeSolution -name zzz.wsp -filename zzz.wsp -allowGacDeployment -local
我收到成功陈述的两个输出而不是一个:
Operation completed successfully.
Operation completed successfully.
它似乎与-local
标志有关,所以我的猜测是它成功创建计时器作业然后在引擎盖下运行execadmsvcjobs。
stsadm -o execadmsvcjobs
对此的想法?
答案 0 :(得分:1)
您应谨慎使用升级解决方案,因为它不支持向解决方案包添加新功能。
另请注意,如果您使用-local,则只在本地WFE上部署。为了保持一致性,我总是使用-immediate,在我完成添加计时器作业后,运行stsadm -o execadmsvcjobs
我不确定这两条消息,但由于升级解决方案是一个两阶段操作,首先添加新版本的旧解决方案,然后添加它,这就是你有两条消息的原因。
答案 1 :(得分:1)
不幸的是,我认为这不像看起来那么令人兴奋......
在STSADM中,如果部署本地解决方案(立即),会发生以下情况(破解反射器):
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(以及“Operation Completed Successfully”控制台消息)的引擎下做了一些事情,但是直接的那个只有另一个 base.OutputSucceedMessage(); 就可以了