加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

新的Delphi XE2自动生成的内部版本号是否链接到1.1.2000 00:00:0

发布时间:2020-12-15 09:31:19 所属栏目:大数据 来源:网络整理
导读:在Delphi XE2中,自动生成的构建号功能现在使用某种日期和时间生成的值,如下所示: 2.4.4386.838 每次构建时最后两个数字都会更改,并且基于当前日期和时间: Major = 2 (user defined)Minor = 4 (user defined)Release = 4386 (number of days since Jan 1 20
在Delphi XE2中,自动生成的构建号功能现在使用某种日期和时间生成的值,如下所示:

2.4.4386.838

每次构建时最后两个数字都会更改,并且基于当前日期和时间:

Major = 2 (user defined)
Minor = 4 (user defined)
Release = 4386 (number of days since Jan 1 2000)
Build = 838 (number of seconds since 00:00:00)

我想这个发布和构建数字的新格式是从.NET实现中借用的,它实现了非常相似的功能.在.net中,最后一个数字(Build)等于自当地时间午夜以来的秒数除以2.有关.net实现的详细信息,请参阅此链接:Determining Build Date the hard way

如果可以依靠这种方式保持这种方式,那么现在我们有更好的方法来确定编译时间而不是

>使用IDE插件
>使用PE Headers hacks

问题不在于如何返回旧的自动增量版本号功能.

问题是XE2是否确实使用了上面显示的日期和时间,从2010年1月1日开始,在Build和Release数字中添加了几天和几秒?

解决方法

编码不能像你想象的那样.发行版和数字打包成一个32位DWORD.这意味着一天中只有16位可用于所有秒.一天有86400秒,大于216.

相当奇怪的是,当Delphi实现达到216秒,大约18.2小时时,它似乎就会被包围.所以目前在我的时区(UTC)是22:50,但是自动生成的版本号是16753,或大约4.6小时.加上从环绕和宾果游戏中失踪的18.2小时,这是22:50.

它看起来像Visual Studio人们做对了,因为它们在00:00之后花了几秒钟除以2.因此也会出现Delphi自动生成的版本号不会随时间单调增加,也不会独特的等等.

在我看来,这是一个我提交为QC#102343的错误.请注意,该错误是在XE2 update 3中引入的.它在以前的版本中不存在.另请注意,版本号的处理已从更新2更改为更新3.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读