首页 > 解决方案 > 如何在 Azure Devops Pipeline 托管代理中构建 Visual Studio 安装程序项目

问题描述

我有一个 Visual Studio 安装项目。通常我使用Microsoft Visual Studio 安装程序项目扩展,并使用 devenv 使用命令行运行 MSBuild Exec 任务。这适用于我的开发盒和我现有的构建机器。但是,我希望使用VS2017 映像迁移到托管管道代理

我希望安装程序扩展可能已经安装,所以我尝试了我的构建并得到了一个错误:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.com" "D:\a\2\s\Source\Build..\WindowsFormsApp1\WindowsFormsApp1.sln" /Build "调试" /Project "Setup1" /ProjectConfig "调试" /Log

操作无法完成。参数不正确。

我尝试将 VSIX 添加到我的存储库中,然后像这样发出 VSIX 的命令行安装:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VSIXInstaller.exe" /a /quiet /log:MyTestApp.log D:\a\2\s\Source\Build\InstallerProjects .vsix

然而,这似乎阻塞了大约 10 分钟,然后失败并出现错误(我怀疑 UI 正在阻塞,即使我使用 /quiet arg 来抑制 UI):

...以代码-2146233088退出。

有没有办法使用 MS 托管的管道代理来构建 Visual Studio 安装程序项目?

标签: visual-studioazurevisual-studio-2017azure-devopsazure-pipelines

解决方案


如何在 Azure Devops Pipeline 托管代理中构建 Visual Studio 安装程序项目

AFAIK,恐怕我们目前无法在 Azure Devops Pipeline Hosted Agent 中构建 Visual Studio 安装程序项目。

两周前我遇到了类似的问题,经过一段时间的调查,我开始尝试和你一样的想法,使用命令行安装Microsoft Visual Studio Installer Projects扩展。

但是,我遇到了超时问题。我无法在托管代理上安装该扩展。为了测试原因,我使用相同的命令 lien 在另一台本地机器上安装了该扩展。确实,有一个 UI 窗口可以确认您是否要安装此扩展程序,即使我给出了/admin参数:

检查这里的选项。

然后我尝试用管理员打开命令行并执行相同的命令行,它可以成功安装该扩展。所以,我想在 Azure DevOps 管道中执行命令行。但没有成功。因为我们无法使用命令行脚本任务以管理员身份执行命令行脚本。

看来我们必须设置我们的私人代理。

希望这可以帮助。


推荐阅读