【问题标题】:VSTS CI CD for desktop apps用于桌面应用程序的 VSTS CI CD
【发布时间】:2018-02-19 14:32:01
【问题描述】:

如何在 VSTS(Visual Studio Team Services)中为 winform 应用程序实现 CD(持续交付)?目前这是我的 Visual Studio 解决方案文件中的内容

1) 一个winform项目

2) Windows 安装和部署项目

所以每次我构建一个winform项目时,我都会执行以下步骤(我需要CI/CD来完成这些)

1) Build Setup and Deployment 项目,获取 Winform 项目的 Build 输出并创建 EXE/MSI

2) 我使用这个 MSI 文件并使用 NSIS 将它嵌入到 EXE 中

3) 我从命令提示符运行 SIGNTOOL 并对 EXE 进行数字签名

4) 我将此签名的 EXE 上传到我的网站

现在我如何使用 CI / CD 管道来自动执行上述操作,或者我的情况是不可能的?我很迷惑。我找不到任何关于winforms的材料,都是用于网络应用程序的。

谢谢

【问题讨论】:

    标签: azure-devops continuous-integration azure-pipelines desktop-application continuous-deployment


    【解决方案1】:

    您显然需要某种桌面部署策略。最简单的是使用 xcopy。其他替代方案包括 ClickOnceWindows InstallerSquirrel 等框架。我有许多使用 Clickonce 的公司应用程序,我使用 vsts 部署了这些应用程序。

    现在我无法理解 VSTS 将如何帮助我解决这个问题?

    首先使用 VSTS 构建软件,并包含其他任务来打包您的应用。就我而言,我使用 devenv.exe 生成 ClickOnce 包,但您可以使用 powershell 包含自定义任务。构建的工件现在应该是“打包的应用程序”。 然后使用 VSTS 部署将“包”复制到某种托管服务器,您的用户可以从那里下载包。这可以是 Web 服务器或文件服务器,也可以是适合您的部署策略的任何位置。

    在这种情况下,VSTS 是一种编排工具。它有助于为您触发操作。

    请参阅Deploy an agent on Windows,了解如何设置本地代理。

    【讨论】:

    • 嘿Dayneo,感谢您的回复。我刚刚编辑了我的问题以使其更清晰。我不使用 ClickOnce,我使用 Windows 设置和部署。你能通过我编辑的问题并告诉我如何继续吗?谢谢。
    • 构建系统需要安装 NSIS 和 SIGNTOOL。出于这个原因,我认为您应该设置一个本地代理来进行构建。 VSTS 将协调构建,但构建将在您的构建服务器上进行(这就是我为 Oracle DB 之类的东西构建的方式)。然后,您应该在构建序列中使用 powershell 任务来运行打包应用程序所需的自定义步骤。我会说输出工件应该是签名的EXE。然后,您的部署步骤将是一个简单的 EXE 副本到网络服务器。
    • 看起来我越来越近了,这一切都是因为你的帮助。 1)设置一个本地代理:这是否意味着我可以使用我的本地机器或者它必须只在云上?是否有任何可以在本地计算机上运行且 VSTS 会知道的 on Premise Agent 设置?谢谢。
    • VSTS 支持拥有本地代理。该代理将从您将其部署到的任何机器上运行。不过,它将需要出站互联网访问。在 VSTS 中,您转到设置并查找“代理池”。这将为您提供一种下载和安装代理的方法,该代理将在本地运行并与云中的 VSTS 通信。这是手册:docs.microsoft.com/en-us/vsts/build-release/actions/agents/…
    【解决方案2】:

    要按照您在 VSTS 中使用的方式构建和部署,您可以使用以下步骤:

    1. 创建一个存储库(GitTFVC)并将您的解决方案推送到存储库中。
    2. 添加构建/发布定义。

      使用 CI 构建,在触发器选项卡中启用 持续集成。使用 CD 部署,在 Pipeline 选项卡中启用 Continuous deployment trigger。 CI构建和CD部署流程,可以参考CI/CD

    3. 在您的构建/发布定义中添加相关任务。

    【讨论】:

    • 谢谢,我从您提供的市场链接安装了“Build VS Installer”。我还将它添加到我的构建任务列表中,请参阅图像 url 1drv.ms/i/s!Ase2Dy0lrWBLl6Mdtbi8r9BDc-4XiA 现在,当我运行构建时,它给出了 devenv 错误,我尝试更改一些东西,但它对我不起作用。我正在使用 VS 2017 。见上面的图片网址
    • 您能否在您的问题中添加 Build VS Installer 任务完全构建日志(在变量选项卡中设置 system.debug = true)?由于登录屏幕截图不够。
    • 我能够按照此链接kunal-chowdhury.com/2016/07/… 的指示添加注册表项来构建它。现在我可以创建 MSI。我将按照您对 NSIS 等的建议尝试后续步骤,并让您知道。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 2013-01-25
    相关资源
    最近更新 更多