新的Delphi XE2自动生成的内部版本号是否链接到1.1.2000 00:00:0
在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插件 问题不在于如何返回旧的自动增量版本号功能. 问题是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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |