我们将软件打包成MSI文件(使用 Wix)。我们使用VSTS进行构建和发布。
是否有标准方法将 MSI 文件部署为 Release 的一部分?
是的,我可以msiexec /i ...
作为 PowerShell 或批处理脚本运行。但是我们还需要一些其他的东西,例如检查退出代码、将安装日志文件上传回 VSTS Release 或分析错误消息等。
这听起来像是人们想做的很常见的事情,但是没有这样的标准 VSTS 步骤 \ 扩展名。
我们将软件打包成MSI文件(使用 Wix)。我们使用VSTS进行构建和发布。
是否有标准方法将 MSI 文件部署为 Release 的一部分?
是的,我可以msiexec /i ...
作为 PowerShell 或批处理脚本运行。但是我们还需要一些其他的东西,例如检查退出代码、将安装日志文件上传回 VSTS Release 或分析错误消息等。
这听起来像是人们想做的很常见的事情,但是没有这样的标准 VSTS 步骤 \ 扩展名。
我最终为此打包了 VSTS 扩展:
https ://marketplace.visualstudio.com/items?itemName=ivanboyko.vsts-deploy-MSI
您可以在 msiexec 命令中指定日志文件来安装 MSI 文件,然后使用 PowerShell 检查详细日志内容(是否包含错误),如果日志中有错误,您可以使用##vso[task.log] 记录错误或警告。日志问题]。
关于上传日志文件,您可以使用##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