如何在C#控制台应用中设置版本号?解决重复属性报错
C# CLI程序版本号设置问题解决
错误原因
你遇到的Duplicate 'AssemblyInformationalVersion' attribute错误,是因为.NET SDK风格的控制台项目(.NET Core/.NET 5及以上版本)默认会自动生成程序集版本相关属性,包括AssemblyInformationalVersion。手动创建AssemblyInfo.cs并添加该属性,会和自动生成的属性重复,导致冲突。
正确设置方法
方法一:直接通过项目文件(.csproj)配置(推荐)
这是当前.NET项目的标准做法,无需手动维护AssemblyInfo.cs:
- 打开项目的
.csproj文件 - 在
<PropertyGroup>节点中添加或修改以下版本相关属性:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <!-- 程序集版本,格式:主版本.次版本.生成号.修订号 --> <AssemblyVersion>1.0.0.0</AssemblyVersion> <!-- 文件版本,可与程序集版本一致,也可独立设置 --> <FileVersion>1.0.0.0</FileVersion> <!-- 信息版本,支持添加预发布标签,比如1.0.0-beta --> <InformationalVersion>1.0.0.0</InformationalVersion> </PropertyGroup> </Project>
保存文件后重新编译,版本信息即可生效。
方法二:使用自定义AssemblyInfo.cs(不推荐)
如果坚持要手动管理AssemblyInfo.cs,需要先禁用项目的自动生成属性功能:
- 在
.csproj的<PropertyGroup>中添加:
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
- 维护
AssemblyInfo.cs文件,按需添加版本属性:
using System.Reflection; [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0.0")]
这样就不会再出现重复属性的错误。
内容的提问来源于stack exchange,提问作者paul h
相关产品推荐
相关产品推荐

