Azure devops 在VSTS版本中安装MSI

Azure devops 在VSTS版本中安装MSI,azure-devops,windows-installer,azure-pipelines-build-task,azure-pipelines-release-pipeline,Azure Devops,Windows Installer,Azure Pipelines Build Task,Azure Pipelines Release Pipeline,我们将软件打包成MSI文件(使用Wix)。 我们对构建和发布使用vst 是否有标准方法将MSI文件部署为发行版的一部分 是的,我可以作为PowerShell或批处理脚本运行msiexec/I…。但我们还需要做一些其他事情,例如检查退出代码、将安装日志文件上传回VSTS版本或分析错误消息等 这听起来像是人们想做的很普通的事情,但是没有这样的标准VSTS step\扩展。您可以在msiexec命令中指定日志文件来安装MSI文件,然后使用PowerShell检查详细日志内容(是否包含错误),如果日志中

我们将软件打包成MSI文件(使用Wix)。 我们对构建和发布使用vst

是否有标准方法将MSI文件部署为发行版的一部分

是的,我可以作为PowerShell或批处理脚本运行
msiexec/I…
。但我们还需要做一些其他事情,例如检查退出代码、将安装日志文件上传回VSTS版本或分析错误消息等


这听起来像是人们想做的很普通的事情,但是没有这样的标准VSTS step\扩展。

您可以在msiexec命令中指定日志文件来安装MSI文件,然后使用PowerShell检查详细日志内容(是否包含错误),如果日志中有错误,您可以使用#vso[task.logissue]记录错误或警告。

关于上传日志文件,您可以使用##vso[build.uploadlog]本地文件路径上传安装程序日志文件。 有关日志命令的更多信息,请参阅本文:

安装MSI并等待安装程序完成的简单代码:

$filePath='[msi file path]'
$DataStamp = get-date -Format yyyyMMddTHHmmss                
$logFile = 'c:\{0}-{1}.log' -f 'nodejsInstall',$DataStamp                
$MSIArguments = @(
    "/i"
    ('"{0}"' -f $filePath)
    "/qn"
    "/norestart"
    "/L*v"
    $logFile
)               
Start-Process "msiexec.exe" -ArgumentList $MSIArguments -Wait -NoNewWindow

我最终为此打包了VSTS扩展:

源代码是开源的:


谢谢,但我已经编写了一个脚本,包括task.logissue和task.uploadlog。我的问题是,对于在VSTS发行版中安装MSI这样的常见任务,是否有一种标准方法——类似于构建步骤。自定义脚本很难扩展-在我管理的几十个项目中应用它。看起来您的扩展从市场上消失了,这是故意的吗?我没有时间维护它,所以在它与某些规则(如类别或其他)不兼容后,他们将其删除。我不再与VST合作了,因此无法证明花时间在这方面是合理的。源代码是开源的,所以如果需要,您可以将其作为自己的VSTS扩展进行打包。