title: How do I determine the Delphi version which created a Delphi project
body: <p>I am trying to automatically figure out which Delphi version (of Delphi 5 to XE2 installed on my computer) to use to open a given project without upgrading that project by mistake.</p>
  <p>Up to Delphi 7 there is a .dof file in .ini format for each project.
  Delphi 5 does not have any entry which might help, but starting from Delphi 6 there is a [FileVersion] section which contains the following values:</p>
  <ul>
  <li>Delphi 5: N/A</li>
  <li>Delphi 6: 6.0</li>
  <li>Delphi 7: 7.0</li>
  </ul>
  <p>So I guess that settles that, since older Delphi versions do not concern me.</p>
  <p>For Delphi 2005 and 2006 there is a .bdsproj file in XML format containing a version entry:
  \BorlandProject\PersonalityInfo\Option\Option</p>
  <p>In Delphi 2005 it looks like this:</p>
  <p><code>&lt;Option Name=&quot;Version&quot; Type=&quot;String&quot;&gt;1.0&lt;/Option&gt;</code></p>
  <p>In Delphi 2006 like this:</p>
  <p><code>&lt;Option Name=&quot;Version&quot;&gt;1.0&lt;/Option&gt;</code></p>
  <p>So I could look whether the attribute &quot;Type&quot; exists and depending on that decide on Delphi 2005 or 2006.
  Could somebody please have a look at his Delphi 2005 and 2006 projects and verify this difference? (Or do you maybe have got a better idea?)</p>
  <p><strong>edit:</strong> I just tried to verify this and found, that Delphi 2005 does not always add the Type-Attribute. So now I am stuck.</p>
  <p><strong>edit:</strong> Maybe the GUID stored there is unique to the Delphi version?</p>
  <ul>
  <li>Delphi 2005: {87D03616-A4C7-4B5A-AF0F-0164EA60BC59}</li>
  <li>Delphi 2006: {CFE1BEE6-6FDE-4241-8CA5-D38D14EAA768}</li>
  </ul>
  <p>Somehow I doubt it, I am afraid that the GUID may represent different SKUs (Professional / Architect etc.). But maybe you could verify this?</p>
  <p>Starting with Delphi 2007 there is a .dproj file in a different XML format. The Delphi 2007 format does not contain any version entry I could find, but from Delphi 2009 on there seems to be the following entry:</p>
  <p><code>\project\PropertyGroup\ProjectVersion</code></p>
  <p>These are the values I found in my .dproj files:</p>
  <ul>
  <li>Delphi 2007: N/A</li>
  <li>Delphi 2009: 12.0</li>
  <li>Delphi 2010: 12.0</li>
  <li>Delphi XE:   12.3</li>
  <li>Delphi XE2:  13.4</li>
  </ul>
  <p>If these are correct, I could reliably determine Delphi 2007, XE and XE2. But how do I distinguish between Delphi 2009 and 2010?</p>
  <p>Also, these numbers look odd to me. Does anybody know whether there are any differences between the various updates of Delphi, e.g. did the original Delphi XE2 release maybe start with 13.0 and with each update increment the number after the dot? But if that's the case, how did Delphi XE get 12.3?</p>
  <p>(There is a similar question <a href="https://stackoverflow.com/questions/4394136/how-can-i-tell-what-version-of-delphi-was-used-to-create-a-project">How can I tell what version of Delphi was used to create a project</a> but the single answer there is quite limited.)</p>
  <p>Just in case anybody else needs this: I have just added a <a href="http://delphi.wikia.com/wiki/How_to_find_out_which_Delphi_version_was_used_to_create_a_project%3F" rel="nofollow noreferrer">page to the Delphi Wiki</a> which summarizes all answers and adds information for newer Delphi versions (currently up to Delphi 10.4.1).</p>