运行 post Web 部署后的部署脚本

Running post deployment script after Web Deploy

我遇到以下问题,令我惊讶的是我在 SO 或 MSDN 上找不到任何直接的解决方案。

我的几个 Web 应用程序中有现有的 *.pubxml 配置文件,我想执行 post 部署脚本 - powershell 脚本 - 稍微重组网站及其子应用程序。

我没有使用 Web 部署包 - 只是 Web 部署。

脚本部署成功,问题是部署后如何自动执行?

我有两种情况:

  1. 只需从 Visual Studio 执行 "Publish..."。
  2. 作为 TFS 构建定义 (TFS 2013) 的一部分执行。

您应该仅在 VSTS/TFS 中切换到从构建和发布进行部署。

然后您可以添加 PowerShell 构建任务并指向脚本或使用内联(如果它很短)。如果它是您在许多构建中使用的脚本,您可能想要编写自己的构建任务。

您可以尝试通过MSBuild定义一个“Target”来达到您的要求。

第一种情况:

Visual Studio 构建过程由导入到项目文件中的一系列 MSBuild .targets 文件定义。这些导入文件之一,Microsoft.Common.targets。此文件包含一组预定义的空目标,这些目标在构建过程中的一些主要目标之前和之后调用。

因此您可以定义一个 "Target" 元素,其 "AfterTarget" 属性的值设置为 "MSDeployPublish":

<Target Name="CustomPostPublishActions" AfterTargets="MSDeployPublish" >
    <Exec Command="..\PostDeploymentScript.sp1 " />
</Target>

对于第二种情况:

您可以按照 MrHinsh 的建议添加 PowerShell 构建任务。