【发布时间】:2021-04-15 13:32:11
【问题描述】:
一段时间以来,我们一直在使用 AzureDevops 和自托管构建代理构建各种 Web 项目。
今天我必须添加一个新版本,其中包含一个用 .net core 3.1 编写的 Windows 服务。该服务必须由我们的客户安装,因此我们必须以友好的可安装方式提供它。由于我们的一些开发人员已经习惯于处理 MSI/*.vdproj 项目,他们在 *.sln 中添加了一个 vdproj 来管理它。在开发人员机器上,即使使用 VS2019 也不是问题:您只需要使用 the relevant VS studio extension...
但是在 CI/CD 环境中构建它时,这将成为一个真正的挑战。我很快就明白了 we can't use MSBuild 并找到了一些直接使用 Visual Studio (devenv) 的替代方案......受 this thread (still opened) 的启发,我想出了以下命令行:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv" [...]\MySolution.sln /build "Release" /Project MyInstallationProject
这在我的开发人员机器甚至构建代理机器上都运行良好。但是当我将它作为命令行任务添加到构建管道中时,它似乎挂起,过了一会儿我得到了以下工作结果:
##[error]The job running on agent <MyAgent> ran longer than the maximum time of 60 minutes. For more information, see https://go.microsoft.com/fwlink/?linkid=2077134
我该怎么做才能让它发挥作用?
在 CI/CD 上下文中生成可自行安装的最佳实践是什么? (MSI 还相关吗?)
【问题讨论】:
标签: .net-core azure-devops windows-installer