获取 Web Deploy 以在发布后运行批处理文件

QFD*_*Dev 5 publish msdeploy visual-studio webdeploy

我正在使用 Web Deploy 将 Web 应用程序从 Visual Studio 2012 发布到我的目标 IIS 服务器。那里一切都好!

我现在想部署到网络场中的多台服务器(在工作组内)。我制作了一个 Robocopy 脚本,用于在将文件部署到第一个 Web 服务器后通过网络将文件复制到其他主机。我可以手动运行这个 bat 文件没问题,但我想在部署过程中自动化它。

到目前为止,我已经成功地编辑了.pubxml我的 VS 项目中的文件,如下所示。

  <ItemGroup>
    <MsDeploySourceManifest Include="runCommand">
      <Path>robocopy &quot;c:\web1&quot; &quot;\\REMOTEMACHINE\web1&quot; /MIR</Path>
    </MsDeploySourceManifest>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

这会运行命令 OK 但在所有文件同步之前。此外,根据发布日志,它运行了两次。在文件同步过程中。

.pubxml只有在所有文件同步后,我才能调整文件以运行该命令?

QFD*_*Dev 3

我相信我已经通过将 a 包装ItemGroupTargetset AfterTargetsto解决了这个问题AddIisSettingAndFileContentsToSourceManifest

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

  <Target Name="RoboCopyToHosts" AfterTargets="AddIisSettingAndFileContentsToSourceManifest">
    <ItemGroup>
      <MsDeploySourceManifest Include="runCommand">
         ....
         ....
      </MsDeploySourceManifest>
    </ItemGroup>
  </Target>
Run Code Online (Sandbox Code Playgroud)