2017-02-25 136 views
0

我有以下问题,我很惊讶我无法在SO或MSDN上找到任何简单的解决方案。Web部署后运行post部署脚本

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

我不是usign Web部署包 - 只是Web部署。

该脚本部署成功,但问题是 - 部署后应如何自动执行它?

我有两个方案:

  1. 通过简单地执行 “发布...” 从Visual Studio。
  2. 作为TFS构建定义(TFS 2013)的一部分执行。
+0

1)令人兴奋的从Visual Studio发布是一个非常糟糕的做法。 2)作为构建过程的一部分执行脚本是微不足道的。你有什么尝试? –

+0

1)好的,但我已经拥有它,它工作正常。 2)我需要执行它作为部署后的一部分。我知道如何执行预编译或后编译脚本。我有部署到目标位置的脚本,我需要一种方法来执行它。就这样。 – sephirot

+0

您将其作为构建的一部分执行。不要仅从构建版的VS部署。 –

回答

1

您可以尝试通过MSBuild定义一个“目标”来实现您的要求。

对于第一种方案:

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

所以,你可以定义其“AfterTarget”属性的值设置为“MSDeployPublish”一个“目标”元素:

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

对于第二种情况:

您可以添加一个PowerShell构建任务,海士先生的建议。

+0

PostDeploymentScript.sp1是否会在Web应用云环境中运行? –

1

您应该切换到从Build &开始部署仅在VSTS/TFS中发布。

enter image description here

然后,您可以在脚本中添加一个PowerShell构建任务,无论是点或使用内联,如果是短。如果它是您在许多版本中使用的脚本,则可能需要编写自己的构建任务。

+0

我现在在使用TFS 2013的前提下。不过谢谢你的提示。我将使用TeamCity,因为它对于小团队是免费的,并且具有相同的功能。 – sephirot