在 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
我们将我们的软件打包成 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