在发布后运行批处理文件的步骤:使用Web Deploy

6
我正在使用Web Deploy将Web应用程序从Visual Studio 2012发布到目标IIS服务器。这方面一切都很好!
现在我想要在Web农场(工作组内)中部署到多个服务器。我已经编写了一个Robocopy脚本,一旦部署到第一个Web服务器上,就可以通过网络将文件复制到其他主机上。我可以手动运行此bat文件,没有问题,但我希望在部署过程中自动化它。
到目前为止,我已经成功地编辑了我的VS项目中的.pubxml文件,如下所示。
  <ItemGroup>
    <MsDeploySourceManifest Include="runCommand">
      <Path>robocopy &quot;c:\web1&quot; &quot;\\REMOTEMACHINE\web1&quot; /MIR</Path>
    </MsDeploySourceManifest>
  </ItemGroup>

这个命令可以运行,但是在所有文件同步之前运行。根据发布日志显示,它运行了两次,并且在文件同步过程中。

我该如何调整.pubxml文件,在所有文件同步完成后再运行该命令?

1个回答

3

我相信我已经通过将 ItemGroup 嵌套在一个 Target 中,并将 AfterTargets 设置为 AddIisSettingAndFileContentsToSourceManifest 来解决了这个问题。

我仍然不确定为什么该命令会被执行两次?而且,我欢迎任何其他关于如何简化此操作的建议。

  <Target Name="RoboCopyToHosts" AfterTargets="AddIisSettingAndFileContentsToSourceManifest">
    <ItemGroup>
      <MsDeploySourceManifest Include="runCommand">
         ....
         ....
      </MsDeploySourceManifest>
    </ItemGroup>
  </Target>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接