在 VSTS 版本中安装 MSI

Install MSI in VSTS Release

我们将我们的软件打包成 MSI 文件(使用 Wix)。 我们使用 VSTS 进行构建和发布。

是否有标准方法部署 MSI 文件作为发布的一部分

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

这听起来像是人们愿意做的很常见的事情,但是没有这样的标准 VSTS 步骤\扩展。

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

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

安装 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 扩展:
https://marketplace.visualstudio.com/items?itemName=ivanboyko.vsts-deploy-MSI

源代码为open-sourced:
https://github.com/IvanBoyko/vsts-install-MSI.git