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

时间:2014-07-11 15:23:31

标签: visual-studio publish msdeploy webdeploy

我使用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>

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

如果只在所有文件同步后才能调整.pubxml文件来运行该命令?

1 个答案:

答案 0 :(得分:3)

我相信我已经通过将ItemGroup包裹在Target中来解决了这个问题 AfterTargets设置为AddIisSettingAndFileContentsToSourceManifest

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

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