Delphi 中.dproj 文件解析(一、版本说明)

Delphi 的工程文件 xxx.dproj是一个标准的XML文本文件,从Delphi 2007开始使用.dproj后缀的工程文件,一直到最新的Delphi 11.2都在使用。遗憾的是,早期的版本并不向前兼容,比如用Delphi 2007版本打开一个Delphi XE版本创建的 .dproj 工程文件会报错。

为了解析 .dproj 文件,必须先明白Delphi的各个版本。

Delphi 是使用MsBuild 进行构建的,所以.dproj 是一个标准的MsBuild 项目文件,具体的资料请参见:MSBuild - MSBuild | Microsoft Learn

一、Delphi版本说明

日常大家说的Delphi的版本,是Delphi的发行版本,比如Delphi XE、Delphi 10.1、Delphi 11.2等等,但是实际Delphi 还有很多实际使用的版本代号,与实际的发行版本并不一样。

  1. .dproj 中的版本代号

在.dproj文件中,版本代号完全是另外一套;在进行自动化构建时有参考使用,一般不需要使用,当然如果不知道当前.dproj是使用那个Delphi版本创建,可以通过这个版本对应查看到Delphi 的版本。这个 .dproj 版本似乎在Delphi的帮助中无法查询到。

  1. Delphi 产品版本(Product Version

与发行版本对应,但不一致。

  1. Delphi的包版本(Package Version

与发行版本对应,但不一致。产品版本 X 10 就是包版本。有时Delphi环境会出现 xxx240.bpl错误,其中这个240就表示的是包版本,对应的是Delphi 10.1(Berlin)。

  1. Delphi编译版本(Compiler Version

与发行版本对应,但不一致;这个比较关键,主要是在编程中会经常使用,比如判断不同的Delphi版本分别进行不同的处理就需要使用这个版本。

{$IF CompilerVersion >= 34}   //10.4 以后的版本需要,Berlin版本不需要这个
    System.Permissions,
    FMX.DialogService,
{$ENDIF}

//下面程序中显示当前Delphi的编译版本
Edit1.Text := FloatToStr(System.CompilerVersion);
  1. 安装版本(Install Version):

表示Delphi 安装路径中的版本号,就是Delphi安装(C:\Program Files (x86)\Embarcadero\Studio)目录后面的数字序号。例如:22.0 就表示的是Delphi 11,19.0表示Delphi 10.2。完整的路径如下:

C:\Program Files (x86)\Embarcadero\Studio\22.0
二、Delphi各个版本对应表

对于Delphi 的各个版本,在Delphi 帮助中,查询versions of compilers 即可找到全部版本对应表,但是不包含.dproj的版本对应。

Delphi conditional VER<nnn>

Product

Product Version

Package Version

Compiler Version

VER350

Delphi 11.0 Alexandria

28

280

35

VER340

Delphi 10.4 Sydney

27

270

34

VER330

Delphi 10.3 Rio

26

260

33

VER320

Delphi 10.2 Tokyo

25

250

32

VER310

Delphi 10.1 Berlin

24

240

31

VER300

Delphi 10 Seattle

23

230

30

VER290

Delphi XE8

22

220

29

VER280

Delphi XE7

21

210

28

VER270

Delphi XE6

20

200

27

VER260

Delphi XE5

19

190

26

VER250

Delphi XE4

18

180

25

VER240

Delphi XE3

17

170

24

VER230

Delphi XE2

16

160,161

23

VER220

Delphi XE

15

150

22

VER210

Delphi 2010

14

140

21

VER200

Delphi 2009

12

120

20

VER190

Delphi 2007 for .Net

11

110

19

VER180 or VER185

Delphi 2007

11

110

18.5

VER180

Delphi 2006

10

100

18

VER170

Delphi 2005

9

90

17

VER160

Delphi 8 for .Net

8

80

16

VER150

Delphi 7 (and 7.1)

7

70

15

三、.dproj 版本对应表

Product

.dproj 内版本

Update 1

Update 2

Update 3

Delphi 11.0 Alexandria

19.3

19.4

19.5

Delphi 10.4 Sydney

19.0

19.1

19.2

Delphi 10.3 Rio

18.5

18.6

18.7

18.8

Delphi 10.2 Tokyo

18.2

18.3

18.4

Delphi 10.1 Berlin

18.1

18.2

Delphi 10 Seattle

18.0

18.1

Delphi XE8

17.1 or 17.2

Delphi XE7

16.0

16.1

Delphi XE6

15.4

Delphi XE5

15.1 or 15.3

Delphi XE4

14.4

14.6

Delphi XE3

14.3

14.4

Delphi XE2

13.4

Delphi XE

12.2

12.3

Delphi 2010

12.0

Delphi 2009

12.0

Delphi 2007

NA

经过测试,Delphi 10.1 BerlinDelphi 11.2 Alexandria 可以互相打开对方创建的VCL工程文件。

上面在 .dproj 中的 XML 样例如下(本样例为Delphi 11.2生成的,注意ProjectVersion19.5):

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <ProjectGuid>{A524FB1B-A9A8-4FB6-A680-1D05B7B5E1BF}</ProjectGuid>
        <ProjectVersion>19.5</ProjectVersion>
        <FrameworkType>VCL</FrameworkType>
        <Base>True</Base>
        <Config Condition="'$(Config)'==''">Debug</Config>
        <Platform Condition="'$(Platform)'==''">Win64</Platform>
        <TargetedPlatforms>3</TargetedPlatforms>
        <AppType>Application</AppType>
        <MainSource>VCL_DEMO.dpr</MainSource>
    </PropertyGroup>

下一篇

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海纳老吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值