Como determinar a versão Delphi que criou um projeto Delphi

Estou tentando descobrir automaticamente qual versão do Delphi (do Delphi 5 para XE2 instalada no meu computador) usar para abrir um determinado projeto sem atualizá-lo por engan

té o Delphi 7, há um arquivo .dof no formato .ini para cada projeto. O Delphi 5 não possui nenhuma entrada que possa ajudar, mas a partir do Delphi 6 existe uma seção [FileVersion] que contém os seguintes valores:

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

Então, acho que isso resolve isso, já que as versões mais antigas do Delphi não me dizem respeit

ara os Delphi 2005 e 2006, existe um arquivo .bdsproj no formato XML que contém uma entrada de versão: \ BorlandProject \ PersonalityInfo \ Option \ Option

No Delphi 2005, é assim:

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

No Delphi 2006 assim:

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

Para ver se o atributo "Type" existe e, dependendo disso, decidir sobre o Delphi 2005 ou 2006. Alguém poderia dar uma olhada nos projetos Delphi 2005 e 2006 e verificar essa diferença? (Ou você tem uma ideia melhor?)

editar Eu apenas tentei verificar isso e descobri que o Delphi 2005 nem sempre adiciona o atributo de tipo. Então agora eu estou pres

editaralvez o GUID armazenado lá seja exclusivo para a versão Delph

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

De alguma forma duvido, tenho medo de que o GUID possa representar diferentes SKUs (Profissional / Arquiteto etc.). Mas talvez você possa verificar isso?

Começando com o Delphi 2007, existe um arquivo .dproj em um formato XML diferente. O formato Delphi 2007 não contém nenhuma entrada de versão que pude encontrar, mas a partir do Delphi 2009 parece haver a seguinte entrada:

\project\PropertyGroup\ProjectVersion

Estes são os valores que encontrei nos meus arquivos .dproj:

Delphi 2007: N / ADelphi 2009: 12.0Delphi 2010: 12.0Delphi XE: 12,3Delphi XE2: 13.4

Se estas estiverem corretas, eu poderia determinar com segurança o Delphi 2007, XE e XE2. Mas como faço para distinguir entre Delphi 2009 e 2010?

Além disso, esses números parecem estranhos para mim. Alguém sabe se existem diferenças entre as várias atualizações do Delphi, por exemplo o Delphi XE2 original talvez tenha começado com 13.0 e a cada atualização aumentasse o número após o ponto? Mas se for esse o caso, como o Delphi XE conseguiu 12,

(Existe uma pergunta semelhanteComo posso saber qual versão do Delphi foi usada para criar um projeto mas a resposta única é bastante limitada.)

Apenas no caso de alguém precisar disso: Acabei de adicionar umpágina para o Delphi Wiki que resume todas as respostas e adiciona informações para as versões mais recentes do Delphi (atualmente até Delphi 10.1

questionAnswers(8)

yourAnswerToTheQuestion