我使用Web Deploy将Web应用程序从Visual Studio 2012发布到目标IIS服务器。一切都很好!
我现在想要部署到Web场中的多个服务器(在工作组内)。我已经生成了一个Robocopy脚本,一旦将文件部署到第一个Web服务器,就将文件通过网络复制到其他主机。我可以手动运行这个bat文件没问题,但我想在部署过程中自动执行它。
到目前为止,我已设法编辑VS项目中的.pubxml
文件,如下所示。
<ItemGroup>
<MsDeploySourceManifest Include="runCommand">
<Path>robocopy "c:\web1" "\\REMOTEMACHINE\web1" /MIR</Path>
</MsDeploySourceManifest>
</ItemGroup>
这会运行命令OK但在所有文件同步之前。同样根据发布日志,它运行了两次。在文件同步过程中。
如果只在所有文件同步后才能调整.pubxml
文件来运行该命令?
答案 0 :(得分:3)
我相信我已经通过将ItemGroup
包裹在Target
中来解决了这个问题
AfterTargets
设置为AddIisSettingAndFileContentsToSourceManifest
。
我还不确定为什么命令执行两次?我欢迎任何其他有关如何简化此操作的建议。
<Target Name="RoboCopyToHosts" AfterTargets="AddIisSettingAndFileContentsToSourceManifest">
<ItemGroup>
<MsDeploySourceManifest Include="runCommand">
....
....
</MsDeploySourceManifest>
</ItemGroup>
</Target>