¿Cómo determino la versión de Delphi que creó un proyecto de Delphi

stoy tratando de averiguar automáticamente qué versión de Delphi (de Delphi 5 a XE2 instalada en mi computadora) usar para abrir un proyecto determinado sin actualizar ese proyecto por error.

Hasta Delphi 7 hay un archivo .dof en formato .ini para cada proyecto. Delphi 5 no tiene ninguna entrada que pueda ayudar, pero a partir de Delphi 6 hay una sección [FileVersion] que contiene los siguientes valores:

Delphi 5: N / ADelphi 6: 6.0Delphi 7: 7.0

Así que supongo que eso lo resuelve, ya que las versiones anteriores de Delphi no me conciernen.

Para Delphi 2005 y 2006 hay un archivo .bdsproj en formato XML que contiene una entrada de versión: \ BorlandProject \ PersonalityInfo \ Option \ Option

En Delphi 2005 se ve así:

<Option Name="Version" Type="String">1.0</Option>

En Delphi 2006 así:

<Option Name="Version">1.0</Option>

Entonces podría ver si el atributo "Tipo" existe y, según eso, decidir sobre Delphi 2005 o 2006. ¿Podría alguien echar un vistazo a sus proyectos Delphi 2005 y 2006 y verificar esta diferencia? (¿O tal vez tienes una idea mejor?)

editar Solo intenté verificar esto y descubrí que Delphi 2005 no siempre agrega el atributo de tipo. Así que ahora estoy atascado.

editar ¿Quizás el GUID almacenado allí es exclusivo de la versión de Delphi?

Delphi 2005: {87D03616-A4C7-4B5A-AF0F-0164EA60BC59}Delphi 2006: {CFE1BEE6-6FDE-4241-8CA5-D38D14EAA768}

De alguna manera lo dudo, me temo que el GUID puede representar diferentes SKU (Profesional / Arquitecto, etc.). ¿Pero tal vez podrías verificar esto?

Comenzando con Delphi 2007 hay un archivo .dproj en un formato XML diferente. El formato Delphi 2007 no contiene ninguna entrada de versión que pude encontrar, pero a partir de Delphi 2009 parece haber la siguiente entrada:

\project\PropertyGroup\ProjectVersion

Estos son los valores que encontré en mis archivos .dproj:

Delphi 2007: N / ADelphi 2009: 12.0Delphi 2010: 12.0Delphi XE: 12.3Delphi XE2: 13.4

Si estos son correctos, podría determinar confiablemente Delphi 2007, XE y XE2. Pero, ¿cómo puedo distinguir entre Delphi 2009 y 2010?

Además, estos números me parecen extraños. ¿Alguien sabe si hay alguna diferencia entre las diversas actualizaciones de Delphi, p. ¿El lanzamiento original de Delphi XE2 puede comenzar con 13.0 y con cada actualización aumentar el número después del punto? Pero si ese es el caso, ¿cómo obtuvo Delphi XE 12.3?

(Hay una pregunta similar ¿Cómo puedo saber qué versión de Delphi se utilizó para crear un proyecto? pero la respuesta única es bastante limitada.)

Solo en caso de que alguien más necesite esto: acabo de agregar unpage a Delphi Wiki que resume todas las respuestas y agrega información para las nuevas versiones de Delphi (actualmente hasta Delphi 10.1).

Respuestas a la pregunta(8)

Su respuesta a la pregunta