Dav*_*New 39 .net c# assemblyinfo
我想使用内部版本号附加我们的应用程序版本.例如,1.3.0.201606071
.
在AssemblyInfo中设置它时,我得到以下编译错误:
错误CS7034指定的版本字符串不符合所需的格式 - 主要[.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")]
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
Pat*_*man 42
正如您在此处所读,其中任一部分的最大值为65534 .这是操作系统提出的限制,因此甚至不特定于.NET.Windows将版本号放入两个整数,它们共同形成四个无符号短路.
添加一些元数据(对于*
我猜的选项)会产生最大允许值UInt16.MaxValue - 1 = 65534
(感谢Gary Walker注意到):
版本的所有组件必须是大于或等于0的整数.元数据将程序集的主要,次要,构建和修订组件限制为最大值
UInt16.MaxValue - 1
.如果组件超过此值,则会发生编译错误.
你201606071
超过了这个限制.
这是因为版本中的每个数字都是ushort!这真遗憾.
如果您定位netcoreapp2.0
并且根本没有定位,则AssemblyInfo.cs
可以修复
错误CS7034:指定的版本字符串不符合要求的格式
通过将其添加到您的.csproj
文件中:
<PropertyGroup>
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
<Deterministic>False</Deterministic>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
是的,您可以对 AssemblyFileVersion 和 AssemblyInformationalVersion 执行此操作(在 .NET Framework 和 .NET Core 中),但不能对 AssemblyVersionAttribute 执行此操作。
AssemblyVersionAttribute
唯一一个实际上限制为 4 个ushort
值的值 - 如果您指定更多值,编译器会抱怨error CS7034: The specified version string does not conform to the required format - major[.minor[.build[.revision]]]
,并且您对此无能为力。AssemblyFileVersionAttribute
与更大的值一起使用,例如用(例如在 semver 的补丁部分中)对日期值进行编码,但会生成warning CS7035: The specified version string does not conform to the recommended format - major.minor.build.revision
. 幸运的是,因为这是一个警告,所以可以将其抑制(见下文)。AssemblyInformationalVersionAttribute
任何限制,可以包含预发布语义版本,例如“ 1.2.6-CI20220906
”,或任何其他随机字符串。也就是说,以下内容将起作用:
#pragma warning disable CS7035 // The specified version string does not conform to the recommended format - major.minor.build.revision
[assembly: AssemblyVersionAttribute("1.4.0.0")]
[assembly: AssemblyFileVersionAttribute("1.4.220831.0")]
[assembly: AssemblyInformationalVersionAttribute("1.4.220831-prerelease+build")]
#pragma warning restore CS7035
Run Code Online (Sandbox Code Playgroud)
对于 .NET Core,您可以:
归档时间: |
|
查看次数: |
17470 次 |
最近记录: |