C#自动生成版本号和获得程序版本号(完整)

本文介绍了如何通过修改AssemblyInfo.cs文件自动生成版本号,并解决因通配符导致的编译确定性问题。通过将`AssemblyVersion`设置为`1.0.*`,版本号将基于编译日期自动生成。当遇到编译错误CS8357时,需在项目文件.csproj中将`<Deterministic>`属性设为`false`,以允许使用通配符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先 :

1.版本号自动生成方法:
只需把 AssemblyInfo.cs文件中的[assembly: AssemblyVersion(“1.0.0.0”)]改成[assembly: AssemblyVersion(“1.0.*”)],另外还需要把[assembly: AssemblyFileVersion(“1.0.0.0”)]注释屏蔽掉。这样再生成的程序集就是自动版本号了。
按照这个格式出来的版本号,内部修订版本号(第三个字段)的位置出现的是2000年1月1日到编译日期的天数,内部修订号(第四个字段)是当天从0点到当前时间的刻度数。
2.获得版本号:
Content.Text = “程序集版本:” + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() +"\n";
Content.Text += “文件版本:” + Application.ProductVersion.ToString() +"\n";
Content.Text += “部署版本:” + System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
————————————————
版权声明:本文为优快云博主「pengdizhuo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/pengdizhuo/article/details/107713700

更改后会报错: 

 CS8357 指定的版本字符串包含通配符,这与确定性不兼容。请删除版本字符串中的通配符,或禁用此编译的确定性。

然后:

打开项目文件存储目录,用文本编辑器打开项目文件(扩展名.csproj) 

<PropertyGroup>
  <Deterministic>true</Deterministic>
</PropertyGroup>

将true改为false后重新加载项目就好了 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值