visual-studio - 关于正确使用 TFS 发布 Web 应用程序的说明
问题描述
我正在尝试通过 TFS 2015 设置 CI,我有一个解决方案,它有 2 个主要的 Web 应用程序,目前我们部署手动编辑配置文件等等(有时会导致错误)
我已经阅读了构建/发布过程,过去我使用 Jenkins 作为构建服务器。但是直到今天我还有一个问题,这与何时应用 XML 配置文件的转换有关。
在我当前的 VTFS2015 设置中,我创建了一个构建过程,并使用以下行构建项目
msbuild /p:Configuration=Test /p:PublishProfile=Test /p:DeployOnBuild=true xxx\xxx.csproj
这会在obj\Test\Package\PackageTmp
包的文件夹中创建我
这个可以吗?还是应该在发布管理选项卡中完成?考虑在我的农场,我已经
- 测试(来自 DEV 主干)
- 暂存(也来自 Dev 主干)
- 生产(从 3 台机器上的生产主干)
我的目标是让它们在机器上自动交付,但我不知道应用转换的正确时机(在构建期间我可以使用发布功能,在 RM 期间我可以使用 ps1 脚本)
提前致谢
解决方案
好吧,我认为这个线程会有所帮助:TFS 2017 构建任务在 TFS 构建期间应用 web.config 转换?
要应用转换,您可以使用扩展:在 vNext 构建过程中应用转换。
通常它应该是一个包,用于部署任务,例如 Deploy: WinRM - IIS Web App Deployment或Azure App Service Deployment来实现部署。
1) 转换可以同时参与构建和发布吗?
是的,您也可以使用构建部署任务在构建管道中执行此操作。您需要在发布构建工件任务之后添加该任务。
2) TFS 2017 是否需要大量特殊处理才能使用转换文件?
更新
BuildConfiguration 变量在 TFS 2017 中有所不同,它位于MSBuild 任务中!现在根据 MSBuild 任务配置设置应用转换。
编辑
.proj
文件是一种进行转换的方法。如果您不需要更改转换,它将在构建期间自动执行。您还可以使用一些 3-rd 方任务/扩展来进行额外的转换,例如:XDT 转换通常我们将构建和发布分开进行部署,因为它易于配置多个环境并且易于调试问题。您绝对可以仅在构建中执行此操作,但过程臃肿。您可以参考本教程:使用 Team Foundation Server/Services vNext Builds 构建和部署 Azure Web 应用程序。
对于单独的构建和发布解决方案,您可以查看此博客:Using web.config transforms and Release Manager – TFS 2017/Team Services edition
推荐阅读
- sql - 循环时结果不显示
- jenkins - aws serverless.yml 文件“找不到满足声明‘opt:stage’的有效选项”错误
- javascript - 如何使用javascript在foreach中实时显示数组输入的总数
- uima - UIMA Ruta 版本 2.7.0
- generics - Dart:重载泛型方法
- angularjs - 一个指令中的多个方法返回
- c# - 如何使用 .NET Core WebAPI 中的 JObject 为 C# 中的 GetByQuery(JObject 查询)端点动态创建 MongoDB 查询
- mongoose - Mongoose 如何使用 .add 重用虚拟模式
- vhdl - 分频器和随后的信号边缘检测
- javascript - 从给定节点查找树中父节点的路径