在VSTS中排除/跳过文件构建和发布

时间:2017-10-25 15:20:30

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline

我们正在为VSTS CI / CD创建架构,以将我们的Web应用程序部署到我们的Azure App Services。 我们希望在将其部署到Azure服务器时排除web.config,因为我们正在直接修改不同环境中的web.config。 CI任务看起来像这样:  CI Taks

CD任务:     部署Azure App Service 我知道更新web.config https://docs.microsoft.com/en-us/vsts/build-release/tasks/transforms-variable-substitution的其他方法,但在我们的例子中,我们想跳过web.config文件。 我找不到在VSTS发布期间跳过文件的选项,如本主题中所述 How do I exclude the .cs files within an artifact from a vs-team-services CI build? 有没有办法在构建和部署版本时排除某些文件?

4 个答案:

答案 0 :(得分:4)

在其他参数中添加了-skip:objectName = filePath,absolutePath = web.config。这会在部署期间跳过更新web.config文件。  Azure App Service Deployment

答案 1 :(得分:3)

您可以在构建定义中发布工件之前排除web.config:将Web包文件复制到目录(例如$(build.binariesdirectory)),然后复制文件排除web.config到另一个文件夹(例如$(Build.ArtifactStagingDirectory)/package),并压缩$(Build.ArtifactStagingDirectory)/package下的文件。最后将zip文件发布为构建工件。

详细说明构建定义中的更改如下:

  1. Visual Studio构建任务中将 MSbuild参数更改为/p:OutDir="$(build.binariesdirectory)\\"

    enter image description here

  2. 在Visual Studio Build任务之后添加复制文件任务。此任务的设置如下:

    enter image description here

  3. 在“复制文件”任务后添加存档文件任务。设置如下:

    enter image description here

  4. 更改发布工件任务,如下所示:

    enter image description here

  5. 现在构建工件是排除web.config文件。

答案 2 :(得分:0)

其他参数

-skip:objectName=filePath,absolutePath=\\Configuration\\AppSettings\\Base.config

enter image description here

答案 3 :(得分:0)

您可以添加

  

-skip:objectName = filePath,absolutePath ='。* \ PackageTmp \ Web.config $'

在“部署IIS WebSite / App”部署VSTS任务中的

中,这不会部署您的根web.config文件。