【发布时间】:2017-12-20 16:48:58
【问题描述】:
我正在使用 VSTS 来部署 asp.net Web 应用程序。我们正在改变部署转换后的 web.config 文件的方式,因为我们在最近的生产帖子中被烧毁,因为在“IIS Web App 部署期间文件未正确转换。我们的新计划是使用 CodeAssassin.ConfigTransform”nuget任务,并且我们所有的配置转换都作为构建的一部分进行转换。这些可以由我们的开发人员在本地进行验证/检查,并合并到构建工件中。
所以对于我的问题, 基本上在我的构建工件中,在我的 web 项目的根目录下,我们会找到转换后的 web.config 文件,例如web.dev.config.transformed、web.qa.config.transformed、web.dev.config.transformed等
作为我发布过程中的一个新步骤,对于每个环境,我想在“IIS Web App Deploy”任务将更改推送到网络服务器之前,在我的工件中复制正确的文件。在所有变量替换之后的一个非常基本的级别上,复制命令看起来像这样。
copy-item ?????web.dev.config.transformed -Destination ?????web.config
我需要更换?????与我的工件已被提取的路径,例如
C:\vstsagent\A1\_work\r1\a\temp_web_package_7996773376015784\Content\C_C\VSTS_agent\_work\6\s\My.Web.Project\obj\Release\Package\PackageTmp\
我查看了每个构建/发布变量(感谢 Gian Maria Dump all environment variables during a TFS / VSTS Build),但我没有看到类似可以从变量访问的路径。
我显然在这里遗漏了一些简单的东西......因为其他任务有这些信息可供他们使用?
任何帮助表示赞赏!
【问题讨论】:
-
由于深入研究 web 部署包 zip 的复杂性,我最终放弃了这项工作。现在我正在使用在 VSTS 项目的变量中指定的 Web 部署参数。
标签: asp.net tfs azure-devops azure-pipelines-release-pipeline azure-pipelines-build-task