我试图自动弄清楚哪个Delphi版本(我的计算机上安装的Delphi 5到XE2)用于打开给定项目而不会错误地升级该项目.
直到Delphi 7,每个项目都有.ini格式的.dof文件.Delphi 5没有任何可能有用的条目,但是从Delphi 6开始有一个[FileVersion]部分,其中包含以下值:
所以我想这就解决了,因为较旧的Delphi版本不关心我.
对于Delphi 2005和2006,有一个XML格式的.bdsproj文件,其中包含一个版本条目:\ BorlandProject\PersonalityInfo\Option\Option
在Delphi 2005中它看起来像这样:
<Option Name="Version" Type="String">1.0</Option>
在Delphi 2006中是这样的:
<Option Name="Version">1.0</Option>
所以我可以看看属性"类型"是否存在并且取决于Delphi 2005或2006的决定.有人可以看看他的Delphi 2005和2006项目并验证这种差异吗?(或者你可能有更好的主意?)
编辑:我只是试图验证这一点并发现,Delphi 2005并不总是添加Type-Attribute.所以现在我被卡住了.
编辑:也许存储在那里的GUID对Delphi版本是唯一的?
不知怎的,我怀疑它,我担心GUID可能代表不同的SKU(专业/建筑师等).但也许你可以验证一下?
从Delphi 2007开始,有一个不同XML格式的.dproj文件.Delphi 2007格式不包含我能找到的任何版本条目,但是从Delphi 2009开始,似乎有以下条目:
\project\PropertyGroup\ProjectVersion
这些是我在.dproj文件中找到的值:
如果这些是正确的,我可以可靠地确定Delphi 2007,XE和XE2.但我如何区分Delphi 2009和2010?
而且,这些数字对我来说很奇怪.有没有人知道Delphi的各种更新之间是否有任何差异,例如原始的Delphi XE2版本是否可以从13.0开始并且每次更新都会增加点后面的数字?但如果是这样的话,德尔福XE如何获得12.3?
(有一个类似的问题我怎么能告诉用什么版本的Delphi来创建一个项目,但单一的答案非常有限.)
以防万一其他人需要这个:我刚刚在Delphi Wiki中添加了一个页面,它总结了所有答案,并为更新的Delphi版本添加了信息(目前直到Delphi 10.1).
dum*_*uch 11
我现在比较了Delphi 2005和2006的.bdsproj文件,没有区别.此外,Delphi 2009和2010创建的.dproj文件之间没有区别.
所以答案是:
不幸的是,这不允许我编写一个程序,为给定的项目自动启动正确的Delphi版本.
也许我会让程序询问用户是否有两种可能性并将他的答案存储在.ini文件中,以便下次程序知道启动哪个Delphi版本.
顺便说一下:我之所以这么做是因为我曾多次意外地打开Delphi 2007项目,后来的Delphi版本升级了它,我不得不手动撤销这些变化.这已经变得非常烦人,我想通过将我自己的程序注册为.dpr文件的处理程序来防止它.
*PROJ文件中的版本号不受发布或更新的约束,并非所有版本都可以上街.
| 归档时间: |
|
| 查看次数: |
6896 次 |
| 最近记录: |