【问题标题】:CI/CD WPF setup file using Azure Pipelines使用 Azure Pipelines 的 CI/CD WPF 设置文件
【发布时间】:2018-11-20 22:49:56
【问题描述】:

我已经成功地在 Azure Devops 上创建了一个 Repo 和一个 Pipeline,每次我推送到 master 分支时都会触发一个发布。发布的结果是一个 .exe 文件,我可以从 Artifacts explorer 下载该文件。如果我下载并打开它,WPF 应用程序就会运行(无需安装)。我正试图围绕整个 CI/CD 过程如何工作,但我找不到任何可以帮助我理解部署过程的好例子(至少对于 WPF 应用程序)。

我通常会构建一个 WPF 应用程序,一旦我完成,我将一个新项目添加到解决方案(Visual Studio 安装程序 - 安装项目)并将 .msi 安装程序交付给最终用户(对于更新我将最新版本发送给他们进行安装)。

如何在 Azure Devops 中使用 CI/CD 使这个过程更加顺畅?如何生成实际的安装程序?我是否在应用程序本身中使用一些逻辑来检查 Azure 中的最新版本?有人可以列出一些简单的步骤或一些好的资源吗?

【问题讨论】:

    标签: wpf continuous-integration azure-devops continuous-deployment


    【解决方案1】:

    您应该能够使用这样的任务:https://marketplace.visualstudio.com/items?itemName=dutchworkz.BuildInstaller 来使用您传统上使用的 VS Installer 项目。

    此任务封装了驱动 VS Installer 创建其 MSI 包所需的 devenv 调用,因为它不使用通常的 MSBuild 引擎来执行此操作。

    其他工具也可以完成类似的工作,例如您可以驱动 WIX 或类似工具来创建 MSI 包,但是如果您熟悉 VS 安装程序项目,您可能希望坚持这样做。

    【讨论】:

    • 抱歉回复缓慢。这是朝着正确方向迈出的一步,但我正在努力让它发挥作用。我是否需要配置我的构建代理(本地)?我这样尝试过,但出现此错误:2018-11-27T17:41:13.0687513Z DEBUG: Aggregated: System.Object[]\devenv.com 2018-11-27T17:41:13.4277529Z ##[error]Cannot retrieve the dynamic parameters for the cmdlet. The specified wildcard character pattern is not valid: System.Object[]. 如果我尝试使用 Hosted2017 代理池,结果如下:##[error]Cannot find path 'D:\a\1\s\Setup\release\' because it does not exist.
    • 构建是否创建了 MSI 确定?即任务是否报告成功?我无法从这个 sn-p 中找出哪个阶段失败了。
    • 构建解决方案成功,但从 VS 安装程序项目创建 .msi 文件失败并显示上述消息。我尝试在发布工件步骤之前或之后放置该步骤,但仍然无法使其正常工作。感谢您的支持。
    • 所以这是失败的 VS Build Installer 任务的输出?你为这项任务提供了哪些投入?
    • 是的。没错。请看下面:- task: dutchworkz.BuildInstaller.BuildInstaller.BuildInstaller@1 displayName: 'Create .msi file(s) from VS Installer project(s).' inputs: installTaskMode: vdproj SlnPath: 'MyProject.sln' VdprojPath: MySetupProject/MySetupProject.vdproj
    猜你喜欢
    • 1970-01-01
    • 2019-08-07
    • 2021-09-27
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 2023-01-25
    相关资源
    最近更新 更多