我试图通过使用清单文件中的runCommand提供程序,通过msdeploy作为部署过程的一部分来运行批处理脚本(更多,前提是我可以解决这个问题)。
这是我的清单文件的样子
<MSDeploy.iisApp>
<iisapp path="Default Web Site/SiteName" />
<dbfullSql path="msdeploy.config" transacted="false" />
...(more calls to providers)
<runCommand path="(call to batch script here)" />
</MSDeploy.iisApp>
清单文件中的所有内容都运行良好,但看起来我的命令实际上并不正常。输出的日志在我应该调用我的命令的最后给出了这个。
Info: Adding child runcommand (MSDeploy.iisApp/runCommand).
Verbose: The synchronization completed in 1 pass(es).
Total changes: 85 (82 added, 3 deleted, 0 updated, 0 parameters changed, 0 bytes copied)
我使用以下命令运行msdeploy:
"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:package="package" -dest:iisApp="Default Web Site/SiteName" -setParam:name=bunch of parameters... -debug -verbose > MsDeployOutput.txt
我给清单文件(也在我的源包中)的命令被识别(以任何可能的方式)但从未执行过。关于原因和解决方案的任何想法?
答案 0 :(得分:3)
MsDeploy还有一个自动提供程序,用于部署程序包的内容。因此,您必须将命令行更改为
“C:\ Program Files \ IIS \ Microsoft Web Deploy \ msdeploy.exe”-verb:sync -source:package =“package”-dest:auto -setParam:name =一堆参数... -debug - 详细&gt; MsDeployOutput.txt
此外,如果您希望清单启动,则需要将命令行修改为
“C:\ Program Files \ IIS \ Microsoft Web Deploy \ msdeploy.exe”-verb:sync -source:package =“package”-dest:manifest =“manifestLocation”-setParam:name =一堆参数.. 。-debug -verbose&gt; MsDeployOutput.txt
和MsDeploy将发挥其魔力。
谢谢,
答案 1 :(得分:1)
runCommand提供程序中存在错误。要解决此问题,请使用此属性 的 MSDeploy.MSDeployKeyAttributeName = “路径”强>
像这样:<runCommand path="(call to batch script here)" MSDeploy.MSDeployKeyAttributeName="path" />