我想在我们的应用程序版本中添加版本号.例如,1.3.0.201606071.

在AssemblyInfo中设置此选项时,出现以下编译错误:

错误CS7034指定的版本字符串不符合 所需格式-主要[.次要[.内部版本[.修订]

程序集信息:

[assembly:System.Reflection.AssemblyFileVersionAttribute("1.0.0.201606071")]
[assembly:System.Reflection.AssemblyVersionAttribute("1.0.0.201606071")]
[assembly:System.Reflection.AssemblyInformationalVersionAttribute("1.0.0.201606071")]

为什么会这样?

推荐答案

当您读取here时,这两个部分的最大值都是65534.这是操作系统施加的限制,因此甚至不特定于.NET.Windows将版本号放到两个整数中,这两个整数加在一起就形成了四个无符号短码.

Adding some metadata to it(我猜是*选项)为最大允许值UInt16.MaxValue - 1 = 65534(感谢Gary Walker的提醒):

版本的所有组件都必须是大于或等于0的整数.元数据将部件的主要、次要、生成和修订零部件的最大值限制为UInt16.MaxValue - 1.如果组件超过此值,则会发生编译错误.

你的201606071超出了这个限制.

.net相关问答推荐

.NET Blazor-使用子组件中的处理程序方法进行双向数据绑定

AutoMapper在实体框架查询后不知从哪里带来数据

跨请求共享数据

为什么脚本不从 _Layout 加载并且必须添加到部分视图中?

仅使用 .NET GetBytes 方法转换有效字节而不创建问号

Npgsql Minimum Pool Size 似乎没有被考虑在内

C#/.NET + VisualStudio,命名空间问题

使用 Task.WhenAll 但需要跟踪每个单独的 Task 的成功

在.NET C#中截断整个单词的字符串

Erlang 的让它崩溃的哲学 - 适用于其他地方吗?

如何从控制台应用程序中的 Task.WaitAll() 获取返回值?

从 switch 块中跳出 foreach 循环

使用 Task.Factory.StartNew 传递方法参数

Automapper:使用 ReverseMap() 和 ForMember() 进行双向映射

基于多个字符分隔符拆分字符串

从 C# 中的接口继承 XML 注释

C#As的 VB.NET 类似功能

设置 System.Drawing.Color 值

Visual Studio 2017 和 2019 突出显示滚动条中所选单词的出现

.NET Remoting 真的被弃用了吗?