Azure DevOps(一)基於 Net6.0 的 WPF 程式如何進行持續整合、持續編譯

2023-04-20 06:00:38

一,引言

  我們是否正在為如何快速的編譯、部署使用者端應用程式而煩惱?這也是博主最近遇到的問題。目前博主所在公司主要做專案級的客製化化開發,多以 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!!!