一,引言

  我们是否正在为如何快速的编译、部署客户端应用程序而烦恼?这也是博主最近遇到的问题。目前博主所在公司主要做项目级的定制化开发,多以 C/S 架构的 WPF 程序为主,每次到了协助开发团队给实施团队编译好的要测试程序包时,就会出现多人协助,编译、打包好的二进制程序包 pull 最新代码 ,以及实施同事无法及时的获取到有新程序发布的通知等问题。有了这样的背景,博主所在团队开始准备开始了解,使用团队协作系统 ----- Azure DevOps,通过自动化软件交付来为用户提供持续价值。

二,正文

1, Azure DevOps 创建项目

Project name:”NetCore_WPF_Sample“

Visibility:”Private“(根据实际项目需求)

Version control:”Git“

Work item process:”Agile“

点击 ”Create“ 创建新的项目

2,配置 Azure DevOps 流水线

选择 ”Pipelines =》“pepelines“,点击 ”Create Pipeline“ 创建持续集成管道

选择 ”GitHUb“ Yaml

选择好需要项目,开始配置 ”azure-pipelines.yml“

# .NET Desktop
# Build and run tests for .NET Desktop or Windows classic desktop solutions.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net trigger:
- master pool:
vmImage: 'windows-latest' variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release' steps:
- task: NuGetToolInstaller@1 - task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)' - task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
clean: true - task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)' - task: PublishSymbols@2
displayName: 'Publish symbols path'
inputs:
SearchPattern: '**\bin\**\*.pdb'
PublishSymbols: false
continueOnError: true - task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
SourceFolder: 'Standard.Tool.Platform'
Contents: '**\bin\$(BuildConfiguration)\**'
TargetFolder: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()

调整完 yml 文件后,点击 ”Run“ 执行 pipeline

点击 ”Run“ 开始执行

此时我们的 pipeline 任务正在执行,我们可以点击 ”Job“ 查看详细作业

作业完成后,我们就可以看到编译好的程序包

点击 ”Download artifacts“ 直接下载编译好的二进制程序包

Bingo!!!️️️️

此演示步骤实现了 NET 的桌面应用程序的持续集成与持续编译,当我们 pipeline 监测到 master 分支有变动后,就会立即执行管道作业,可以确保我们不必再人工拉取代码,编译,发布二进制程序包了。

三,结尾

 
   通过 Azure DevOps 的 Pipeline 实现的开发团队协助是一个不错的选择。今天的内容也主要是实战操作,大家也多多练习。熟能生巧。本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还希望多多包涵,并且指出不足之处。

作者:Allen

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译的更多相关文章

  1. 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境

    构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...

  2. 使用 CircleCI 2.0 进行持续集成/持续部署

    使用 CircleCI 2.0 进行持续集成/持续部署 - 简书https://www.jianshu.com/p/36af6af74dfc Signup - CircleCIhttps://circ ...

  3. Azure App Service(一)利用Azure DevOps Pipeline 构建镜像,部署应用程序

    一,引言 起因是前两天项目上做测试,需要我把写好的基于.NET 5 的 Web 测试程序作成 Docker 镜像.当我在本地验证完功能后,准备利用 Docker 构建应用程序镜像的时候,发现系统不支持 ...

  4. 测试需要了解的技术之基础篇三__持续集成持续交付DevOps

    持续集成.持续交付.DevOps 1.容器技术Docker:容器技术介绍.Docker安装与加速配置.Docker基础命令.Docker搭建selenium.Docker搭建持续集成平台Jenkins ...

  5. Azure DevOps Server 2019 第一个补丁包(2019.0.1 RTW)

    在Azure DevOps Server 2019正式发布后的2周左右时间,微软快速发布了第一个补丁包Azure DevOps Server 2019.0.1 RTW.Azure DevOps Ser ...

  6. 在Azure DevOps Server中运行基于Spring Boot和Consul的微服务项目单元测试

    1 概述 谈到微服务架构体系,绕不开服务发现这个功能.服务发现机制是简化微服务配置.实现容灾.水平扩缩容.提高运维效率的重要方式.在服务发现工具中,Consul在部署和使用方面与容器结合的天衣无缝,成 ...

  7. 将传统 WPF 程序迁移到 DotNetCore 3.0

    介绍 由于历史原因,基于 Windows 平台存在着大量的基于 .NetFramework 开发的 WPF 和 WinForm 相关程序,如果将这些程序全部基于 DotNetCore 3.0 重写一遍 ...

  8. 在推送提交之后阻止Azure DevOps (TFS)持续集成

    在Azure DevOps服务器上配置生成定义时,可以配置连续集成(CI)生成.每次签入或提交到源代码库时都会自动运行一个CI构建.这种机制允许开发人员启动一个自动化的过程,例如编译和部署构建.这是一 ...

  9. 使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况

    1.   安装JMeter及使用 1.1下载JMeter 登录官方网站找到下载链接进行下载:https://jmeter.apache.org/download_jmeter.cgi 1.2配置环境变 ...

  10. [Azure Devops] 获取单元测试的代码覆盖率

    1. 获取代码覆盖率 上一篇文章里,我们在 Pipeline 中插入一个单元测试并把所有单元测试都通过作为 Pipeline 通过的硬性要求.除此以外,我们还可以获取单元测试的代码覆盖率,用作衡量代码 ...

随机推荐

  1. KMP算法学习记录

    Foreword: 初学KMP匹配算法,不得其门,总感觉自己想,想不出来,看书上文字解释晦涩难懂.不能准确的捕捉算法设计时候的灵光和思路 .于是自己试着完成了一遍,现将过程记录下来,以供复习. Con ...

  2. test.sh 监听进程是否存在

    监听myloader进程是否结束,结束后把时间输出到 /root/time.log vim test.sh #!/bin/bash #确保PRO查询进程唯一 PRO="myloader&qu ...

  3. 手机设置网络代理后,网络不可用之app-jmeter性能测试

    1.检查crt证书是否安装 (手机) 2.Jmeter设置HTTP代理端口和ip与手机设置代理参数一致即可

  4. datax-web踩坑记录

    实习期间接触了两种ETL工具:kettle.datax 1.datax-web的安装 (跟着文档一步步来就好了) https://github.com/WeiYe-Jing/datax-web/blo ...

  5. 微信小程序页面间通的5种方式

    PageModel(页面模型)对小程序而言是很重要的一个概念,从app.json中也可以看到,小程序就是由一个个页面组成的. 如上图,这是一个常见结构的小程序:首页是一个双Tab框架PageA和Pag ...

  6. 如何设置表格的高度 element 的table 组件

    <el-table :row-style="{ height: '30px' }" :cell-style="{ padding: 0 }" :data= ...

  7. linux端口映射,telnet通信失败

    linux端口映射 1.第一种方法, 使用firewalld # 开启伪装IP firewall-cmd --permanent --add-masquerade # 配置端口转发,将到达本机的123 ...

  8. Windows 10 输入法(仅桌面) %100 解决

    大家好,今天我遇到了一件非常难受的一件事,那就是 WIndows 自带的输入发问题,无法输入中文!!! 这时我去网上找找解决方案,总结了一下几个: 文件检查 步骤 以管理员身份运行PowerShell ...

  9. [复现]DASCTF Sept X 浙江工业大学秋季挑战赛-PWN

    hehepwn 一开始泄露stack地址,然后写入shellcode返回到shellcode执行 from pwn import * context.os = 'linux' context.log_ ...

  10. unidbgrid导出Excel到多个sheet

    xls := TXlsFile.Create(true); xls.NewFile; xls.ActiveSheet := 1; xls.SheetName := '未自评人员清单'; xls.Act ...