【问题标题】:Install MSI in VSTS Release在 VSTS 版本中安装 MSI
【发布时间】:2017-01-18 18:16:18
【问题描述】:

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

是否有一种标准方法可以将 MSI 文件部署为版本的一部分

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

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

【问题讨论】:

    标签: azure-devops windows-installer azure-pipelines-build-task azure-pipelines-release-pipeline


    【解决方案1】:

    【讨论】:

    • 您的扩展程序似乎从市场上消失了,这是故意的吗?
    • 我没有时间维护它,所以在它与 Category 之类的某些规则不兼容后,他们将其删除。我不再使用 VSTS,所以没有理由花时间在这上面。源代码是开源的,因此您可以根据需要将其打包为您自己的 VSTS 扩展。
    【解决方案2】:

    您可以在msiexec命令中指定日志文件来安装MSI文件,然后使用PowerShell查看详细日志内容(是否包含错误),如果日志中有错误,您可以使用记录错误或警告##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
    

    【讨论】:

    • 谢谢,但我已经编写了一个脚本,包括 task.logissuetask.uploadlog。我的问题是,在 VSTS Release 中安装 MSI 等常见任务是否有 标准 方法 - 类似于构建步骤。自定义脚本难以扩展 - 将其应用到我管理的数十个项目中。
    猜你喜欢
    • 1970-01-01
    • 2012-04-18
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多