gpt4 book ai didi

AzureDevOps(一)基于Net6.0的WPF程序如何进行持续集成、持续编译

转载 作者:我是一只小鸟 更新时间:2023-04-20 06:31:20 32 4
gpt4 key购买 nike

一,引言

  我们是否正在为如何快速的编译、部署客户端应用程序而烦恼?这也是博主最近遇到的问题。目前博主所在公司主要做项目级的定制化开发,多以 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 实现的开发团队协助是一个不错的选择。今天的内容也主要是实战操作,大家也多多练习。熟能生巧。本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还希望多多包涵,并且指出不足之处。
github: https://github.com/yunqian44/Standard.Tool.Platform

作者: Allen   。

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

最后此篇关于AzureDevOps(一)基于Net6.0的WPF程序如何进行持续集成、持续编译的文章就讲到这里了,如果你想了解更多关于AzureDevOps(一)基于Net6.0的WPF程序如何进行持续集成、持续编译的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com