vs 2019 Winform里面让版本号自动更新的方法

date
Oct 28, 2021
slug
10026
status
Published
tags
VisualStudio
C#
summary
type
Post
vs里版本号名称:1.0.0.0,第一位Major,第二位Minor,第三位Build,第四位Revision
先在csproj文件里面修改,把true改为false:
<Deterministic>false</Deterministic>
AssemblyInfo.cs里面,修改如下,注释掉第二行
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
在编译exe里面就会有版本号,build是2020年1月1日以来的天数,revision是当日所过秒数除以2
在代码种引入版本号,方法如下
Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; //得到编译时的版本号
DateTime buildDate = new DateTime(2000, 1, 1).AddDays(version.Build).AddSeconds(version.Revision * 2);//由版本号反推编译时间
string displayableVersion = string.Format("{0} ({1} | UTC{2})", version, buildDate.ToString("s"), buildDate.ToString("zzz"));//zzz为UTC offset
MessageBox.Show($"NFH P1 Generator\nAuthor: Wen Bo <wenbo222@gmail.com> onboard r/v BGP Prospector\nFirst build: 2021-10-27\nVersion: {displayableVersion}", "About");

在.net core里面,csproj里面添加下面两行到PropertyGroup里面
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<Deterministic>False</Deterministic>
在Program.cs里面
using System;
using System.Reflection;

[assembly: AssemblyVersion("1.0.*")]

class Program
{
    static void Main()
    {
        Console.WriteLine(Assembly.GetExecutingAssembly().GetName().Version);
    }
}
 

© Wen Bo 2021 - 2022