ASP.NET Core 6 設定版本號碼

軟體在發布時通常都會加上版本號碼,方便和客戶確認,避免只是因為沒有上版而花費許多時間在想辦法重現問題。

取得版號

可以直接使用下面的程式碼取得版號,本範例是寫在 Program.cs,也可以建立一個 API 或是寫在網頁下方方便確認。
預設的版號為 1.0.0.0
    
using System.Reflection;

Console.WriteLine($"version: {Assembly.GetEntryAssembly()?.GetName().Version}");
    

設定版號

版號是設定在 csproj 檔案中,版本號碼只能是數字
    
<Project Sdk="Microsoft.NET.Sdk.Web">

    <PropertyGroup>
        <TargetFramework>net6.0</TargetFramework>
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
        <Version>1.0.0.1</Version>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3"/>
    </ItemGroup>

</Project>

    

比較版本大小

手動比對版本號碼很麻煩,還好有內建的比較方式。會先從第一個數字開始比對,若不同就比大小,相同才往後比。
    
Version version1 = new Version("1.0.1.0");
Version version2 = new Version("1.0.0.1");

int result = version1.CompareTo(version2);
if (result > 0)
    Console.WriteLine("版本一比較大");
else if (result < 0)
    Console.WriteLine("版本二比較大");
else
    Console.WriteLine("版本一與版本二相同");
    
    
// 輸出: 版本一比較大
    

手動設定版本號碼很麻煩? 那你可以試試看 Nerdbank.GitVersioning,他是用於自動部屬的專案來依照 git commit hash 建立版號,例如 1.0.0.2+07f69b45 ,當然也可以自訂,等筆者研究完應該會再來寫一篇的

留言