我想在我们的应用程序版本后附加内部版本号。例如,1.3.0.201606071
。
当在AssemblyInfo中设置它时,我得到以下编译错误:
错误CS7034指定的版本字符串不符合要求的格式- major[.minor[.build.revision]]
程序集信息:
[assembly:System.Reflection.AssemblyFileVersionAttribute("1.0.0.201606071")]
[assembly:System.Reflection.AssemblyVersionAttribute("1.0.0.201606071")]
[assembly:System.Reflection.AssemblyInformationalVersionAttribute("1.0.0.201606071")]
为什么会发生这种情况?
发布于 2016-06-21 18:00:49
当您阅读here时,这两个部分的最大值都是65534。这是操作系统施加的限制,因此甚至不是特定于.NET的。Windows将版本号放入两个整数,这两个整数加在一起就形成了四个无符号短码。
Adding some metadata to it (我猜是为了*
选项)将允许的最大值设置为UInt16.MaxValue - 1 = 65534
(感谢Gary Walker的提醒):
版本的所有组件都必须是大于或等于0的整数。元数据将程序集的主要、次要、内部版本和修订组件限制为最大值
UInt16.MaxValue - 1
。如果组件超过此值,则会发生编译错误。
您的201606071
超出了此限制。
发布于 2019-04-08 20:35:21
如果您的目标是netcoreapp2.0
,并且根本没有AssemblyInfo.cs
,那么您可以修复
错误CS7034:指定的版本字符串不符合所需的格式
通过将此代码添加到.csproj
文件中:
<PropertyGroup>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<Deterministic>False</Deterministic>
</PropertyGroup>
发布于 2016-06-21 17:59:33
https://stackoverflow.com/questions/37941195
复制相似问题