2017-02-21 91 views
2

我有一個使用TFS在線構建的.NET Core MVC應用程序,並使用TFS在線發佈管理內容發佈到Azure。一切都很好。.NET核心應用程序 - 如何在運行時獲取內部版本號

我想要做的是讓我的應用程序在某處顯示內部編號。無所謂......在哪裏......但例如在像/ api/buildversion這樣的WebAPI端點中。

任何人都可以幫助我如何在運行時獲取TFS內部版本號?當應用程序打包/發佈時,是否有任何文件包含我可以從應用程序訪問的內部版本號?

+0

如果我的解決方案解決了您的問題,您可以接受它作爲答案。 –

+0

對不起,延遲,接受!並再次感謝! – Paul

回答

5

簡單的方法是,您可以將內部版本號存儲在文件中(例如appsettings.json),然後在應用程序代碼中獲取此數據。

Appsettings.json示例代碼:

{ 
    "ConnectionStrings": { 
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-WebApplication1-ab933d83-8f4b-4024-9f3c-1aef5339a8f3;Trusted_Connection=True;MultipleActiveResultSets=true" 
    }, 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Debug", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    } 
    "CodeVersion": { 
    "Num": "#{MyBuildNumber}#" 
    } 
} 
  1. 安裝Replace Tokens extension
  2. 編輯您的構建定義
  3. 單擊變量選項卡,並添加一個變量。 (名稱:MyBuildNumber,價值:$(Build.BuildNumber))
  4. 添加構建步驟

enter image description here

+0

這是完美的,嘗試過它,它的作用就像一個魅力!非常感謝!! – Paul

2

您需要在編譯時將編號保存在應用程序中。

根據您的環境,您可以使用$ Build.BuildNumber或$ Env:BUILD_BUILDNUMBER訪問版本號。我通常將它作爲一個變量寫入我的ApplicationInfo。*中,同時包含版本號和內部版本號。

+0

有道理!你可以幫助一些細節,因爲我不是Team Build的專家。我的意思是我需要一個小小的PowerShell腳本,或者我用什麼來寫入應用程序文件? – Paul

+0

簡單地搜索這個問題將得到很多結果。嘗試一下,如果遇到問題會引發其他問題... –

+0

謝謝! @ starain的回答看起來就像是我之後的 – Paul

0

有比增加更多的插件和庫更簡單的方法前更換令牌生成步驟。如果您所使用的Web /應用程序部署方法,擴大文件來變換&變量 enter image description here

假設你想更新說,在你的appsettings.json構建數值

enter image description here

然後,只需更新VSTS版本定義中的變量設置 enter image description here

超級簡單。這在八達通IIRC中或多或少是相同的步驟。

相關問題