微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 azure devops 中构建 MSI

如何解决在 azure devops 中构建 MSI

我们一直在使用 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 仍然相关吗?)

解决方法

作为一种解决方法,您可以尝试安装扩展 Build VS Installer 并使用任务 DutchWorkz - 构建 VS 安装程序在 Azure Pipelines 中构建 Visual Studio 安装程序项目。

enter image description here

这里有一些类似问题的票证(ticket1ticket2),您可以参考。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。