發表文章

目前顯示的是有「AzureDevOps」標籤的文章

AzureDevOps-還原已刪除的Git 分支

圖片
今天同事要找的相關程式碼,前陣子我以為不會再用到,就把它刪除了。試著要在本機的git下reflog,看可不可以找到分支的commit ID來還原,但...已過了期限(預設保留30天),找不到。 本機找不到,就往上找找,幸好AzureDevOps有提供還原已刪除的方式 還原方式 進入Branches,在搜尋輸入已刪除分支的 完整名稱, 找到後就可以還原回來了。 其它參考 https://docs.microsoft.com/zh-tw/azure/devops/repos/git/restore-deleted-branch?view=azure-devops https://gitbook.tw/chapters/branch/restore-deleted-but-unmerged-branch.html

Azure Pipeline - 自動新增版號

圖片
前言 前一篇文章" 建置組件加上自訂版號 "的後半段提到,使用BuildId實作了版號自動新增,如下圖。 name: v1.0.$( Build.BuildId ) ($(SourceBranchName)) ...     msbuildArgs: '/p:Configuration=release /p:AssemblyVersionNumber=$(versionNumber)' 但這個方式有一個問題是,BuildId是跟著整個Project走,Project內所有的Pipeline會共用此ID,所以下次取得是版號可能會跳號,例:1.0.213 變 1.0.219。 另外一個問題,BuildId只會一直累加,所以建置次變多了,數字會變得很奇怪,若Minor版號進版也無法重置。例如:1.0.5999、1.1.6000。 解決方式 使用 內建函式counter ,參數是第一個Key值,第二個回傳的預設值,每次叫用會依Key值,回傳一個自動加1的數字,例如:Key=1.0.0,第一次呼叫得到0,第二次呼叫得到1。 $[counter('1.0', 0)] 結合變數的使用,versionNumber變數,會得到1.0.0、1.0.1、1.0.2 以此類推....。若Minor進版的話(1.1),則counter會重算,變成1.1.0、1.1.1... variables:   version.MajorMinor: '1.0'    version.Revision: $[counter(variables['version.MajorMinor'] , 0)]    versionNumber : '$(version.MajorMinor).$(version.Revision)' 修改建置工作名稱 解決了版號問題,但產生了另一個問題! 建置工作的名稱,無法使用函式。 name: v1.0.$(Build.BuildId) ($(SourceBranchName))  $[counter('1.2', 0)] 名稱變成如下紅框,這樣建置工作無法跟發行的組件對應起來.....所以得另外使用其他方式解決此問題。 解決方式 使用PowerShell在建置...

建置組件加上自訂版號

圖片
前言 目前的專案,組件版號,預設是自動新增,設定在 AssemblyInfo.cs ,例:1.0.* ,建置後 1.0 .7613.6859 ,後方 粗體字為*號 ,自動編的結果。 日前,同事問道,可以在建置時,不修改程式下,設定一組自訂的版號嗎?  呃.....沒做過,搜尋相關文章後,Nuget有一套件 MSBuild.AssemblyVersion ,可以解決此需求。 實作 1.安裝套件 Install-Package MSBuild.AssemblyVersion  2.MsBuild設定版本參數AssemblyVersionNumber cd  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin .\msbuild.exe "D:\VSO\Kim\Lab Projects\AzureArtifactsLab\AzureArtifactsLab\AzureArtifactsLab.csproj"  -t:rebuild /p:AssemblyVersionNumber=1.0.25 建置結果 結合CI 建置 將版號設定為自動增加,並設定在每次建置的標題及組件上。本例的環境為Azure Pipeline,使用BuildId當作Major的流水號 #設定建置名稱 name: v1.0. $(Build.BuildId) ($(SourceBranchName)) #建置工作,設定版號 - task: VSBuild@1   displayName: 'Build'   inputs:     solution: '$(solution)'     msbuildArgs: '/p:Configuration=release /p:AssemblyVersionNumber=1.0. $(Build.BuildId) '     platform: '$(buildPlatform)'     co...

使用Visual Studio Code 編輯Azure Pipline

圖片
問題 Azure Pipelines 在網頁上編輯,雖然提供了提示、Task UI輸入方式,但編輯時,卻總覺得不是很方便。例如:輸入法不小心切到中文,會有亂碼問題。 由於yaml的語法嚴謹性,換行,縮排、空格要排好,不然會直接報錯。而換行、複製/貼上時,縮排常會跑掉,所以又要一直調整......=.=。 解決方法 使用Visual Studio Code編輯YML,支援排版、語法提示等。 1.安裝extension: Azure Pipeline 2.設定Azure Pipeline與 *.yml的檔案關聯, 進入 Command Palette,輸入Change Language Mode  針對*.yml設定為Azure Pipelines     設定完成 編輯時會出現相闗提示 其它/參考 Visual Studio Code 編輯Azure DevOps Pipeline的YAML 這裡有教到如何連接Azure Piple直接建立檔案,但我沒試成功,只有用編輯器提示功能。

使用Azure Pipeline發佈Artifacts

圖片
前言 之前寫過一篇 使用Azure DevOps Artifacts來建立自用Nuget Source ,發行的方式,在本機使用Power Shell。一開始頻繁修改,對發行方式還很熟,沒什麼問題。 但...隨著時間一久就開始有了以下問題: 太久沒更新程式! 要再發行時,就會頓時卡卡的,需要再去溫習一下文章,才知如何下手。 同事也要更新程式,但不知如何發行套件.....雖有文章,但....還是不如作者在旁。 以上都是浪費大好青春的瑣事,這兩天剛好看到Azure Pipeline的介紹,就使用它來完成這....雜事吧。 使用方式 1.建立Pipeline 下一步:選擇git來源後,會產生一個Pipeline YAML,嗯...看不懂沒關係,右方的區塊有小助手會幫你,有各式各樣工作可以選擇,例如: VsBuild、MsBuild、Azure Publish等 2.修改YAML,以下為發行到Azure DevOps專案內的Artifacts # ASP.NET Core (.NET Framework) # Build and test ASP.NET Core projects targeting the full .NET Framework. # Add steps that publish symbols, save build artifacts, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core trigger: none pool:   vmImage: 'windows-latest' variables:   solution: '**/*.sln'   buildPlatform: 'Any CPU'   buildConfiguration: 'Release' steps: - task: NuGetToolInstaller@1 - task: NuGetCommand@2   displayName: 'Restore'   inputs:     restoreSolut...

AzureDevOps-使用Azure Artifacts建立私有的Nuget來源

圖片
前言 同事前兩天問到AzureDevOps 的Artifacts可以用來管理私有nuget套件,但..沒什麼研究,無法回答=.=。今日找到一篇教學文章,跟著作一次,,並將相關步驟記錄下來。 如何使用 1.建立Feed 2.設定Feed  3.選擇nuget.exe 4.將上圖紅框內的xml另存成Nuget.config,並下 載最新的Nuget.exe 放到方案目錄內。 ps:要放哪都可以,放在方案目錄內,是個人開發習慣。 5.透過nuget.exe封裝套件 進入PowerShell後,先切換目錄到.nuget目錄,nuget.exe及組態檔所在位置。 .\nuget.exe pack ..\AzureArtifactsLab\AzureArtifactsLab.csproj 封裝後會產出 AzureArtifactsLab.1.0.0.nupkg,版號自動參照AssemblyInfo.cs 6.發行nuget .\nuget.exe push -source "KimFeedLab" -ApiKey az AzureArtifactsLab.1.0.0.0.nupkg 執行後,第一次會先跳出登入畫面 發行完畢,回到Azure Devops會看到已發佈的套件 7.在開發工具的Nuget Package Sources加入新的來源 ps: 來源的URL在第3點建立的Nuget.config內。 完成後,就可以在套件管理參考囉 其它參考 範例下載 https://azuredevopslabs.com/labs/azuredevops/packagemanagement/#exercise-1-working-with-azure-artifacts https://www.nuget.org/downloads