Upgrading Project Configuration Files

Since the early days of Delphi, the project source code file (with the .DPR extension) contains Object Pascal code and uses one or more separate project configuration files for storing other settings. The format and extension of the project configuration file changed a few times in recent versions, moving from an INI file to an XML file and then to an XML file for MSBuild (the .dproj file format).

65 As you might have heard, Tiburón was the field test name for Delphi 2009. Marco Cantu, Delphi 2009 Handbook

From Delphi 2007 to Delphi 2009 the overall format of this project configuration file doesn't change. But its content is indeed different, and Delphi 2007 doesn't recognize further options added by the newer version of the IDE. When you open an existing Delphi 2007 project, the Delphi 2009 IDE will ask you for the name of a backup file into which it can copy the existing version of the project configuration file:

Upgrading Project !_ _

Project C: progetti'iJedMonitoryedMonitor.dproj is about to be upgraded. The project will no longer be usable with previous versions of the product. A badiup of the project will be created.

Backup project name:


I Do not show this dialog again and always create backup files

The default name for the project configuration file backup is the project name with the extension .dproj.2007. In this specific case, for example, I renamed the project file as IedMonitor2007.dproj. After you perform this operation, the IDE will add to the message pane the line: Upgrading project. Backup

C:\progetti\ledMonitor\ledMonitor2007.dproj created.

Note though, that an updated Delphi 2009 version of the project configuration file is not create until you actually save it.

The backup version will let you reopen the project in Delphi 2007. If you need backwards compatibility, though, a better idea might be to save the Delphi 2009 version of the project with a different name.

In the new .DPROJ file, Delphi 2009 adds a new project version tag: I <ProjectVersion>11.1</ProjectVersion>

The upgrade involved changes in the build configuration (as explained later), and in the resource management. The following sections are new or heavily modified:

<PropertyGroup Condition=",S(Config),==,Re1ease' or '$(Cfg_Re1ease)'i = ""> <Cfg_Re1ease>true</Cfg_Re1ease> <CfgParent>Base</CfgParent>

<Base>true</Base> </PropertyGroup>

<PropertyGroup Condition=",S(Config),==,Debug' or ,$(Cfg_Debug),! = ""> <Cfg_Debug>true</Cfg_Debug> <CfgParent>Base</CfgParent> <Base>true</Base> </PropertyGroup>

<PropertyGroup Condition=",S(Base)'!=,,">

<DCC_DependencyCheckOutputName>Simp1eApp.exe </DCC_DependencyCheckOutputName> </PropertyGroup> <ItemGroup>

<De1phiCompi1e Inc1ude="Simp1eApp.dpr">

<MainSource>MainSource</MainSource> </De1phiCompi1e>

<DCCReference Inc1ude="Simp1eAppMainForm.pas">

<Form>Form30</Form> </DCCReference>

<Bui1dConfiguration Inc1ude="Base">

<Key>Base</Key> </Bui1dConfiguration> <Bui1dConfiguration Inc1ude="Re1ease"> <Key>Cfg_Re1ease</Key> <CfgParent>Base</CfgParent> </Bui1dConfiguration> <Bui1dConfiguration Inc1ude="Debug"> <Key>Cfg_Debug</Key> <CfgParent>Base</CfgParent> </Bui1dConfiguration> </ItemGroup>

It you try reopening this project file in Delphi 2007 (the only past version recognizing this format), you'll see the following error:

The project can not be loaded because the required personality Del phi. Personality .12 i: not available.

Was this article helpful?

0 0
Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook


  • berengario loggia
    What is the form tag in delphi dproj?
    9 years ago

Post a comment