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.0Entã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.4Se 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