Как определить версию Delphi, которая создала проект Delphi

Я пытаюсь автоматически определить, какую версию Delphi (от Delphi 5 до XE2, установленную на моем компьютере) использовать, чтобы открыть данный проект, не обновляя его по ошибке.

До Delphi 7 для каждого проекта существует файл .dof в формате .ini. В Delphi 5 нет записей, которые могли бы помочь, но начиная с Delphi 6 есть раздел [FileVersion], который содержит следующие значения:

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

Так что я думаю, это решает проблему, поскольку старые версии Delphi меня не касаются.

Для Delphi 2005 и 2006 существует файл .bdsproj в формате XML, содержащий запись версии: \ BorlandProject \ PersonalityInfo \ Option \ Option

В Delphi 2005 это выглядит так:

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

В Delphi 2006 так:

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

Поэтому я мог бы посмотреть, существует ли атрибут «Тип» и зависит ли это от решения Delphi 2005 или 2006. Может ли кто-нибудь взглянуть на его проекты Delphi 2005 и 2006 и проверить это различие? (Или, может быть, у вас есть идея получше?)

редактировать: Я просто попытался проверить это и обнаружил, что Delphi 2005 не всегда добавляет атрибут типа. Так что теперь я застрял.

редактировать: Может быть, хранящийся там GUID уникален для версии Delphi?

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

Почему-то я сомневаюсь в этом, я боюсь, что GUID может представлять разные SKU (Professional / Architect и т. Д.). Но, может быть, вы могли бы проверить это?

Начиная с Delphi 2007, существует файл .dproj в другом формате XML. Формат Delphi 2007 не содержит какой-либо записи версии, которую я мог бы найти, но начиная с Delphi 2009, кажется, есть следующая запись:

\project\PropertyGroup\ProjectVersion

Вот значения, которые я нашел в моих файлах .dproj:

Delphi 2007: N / ADelphi 2009: 12,0Delphi 2010: 12,0Delphi XE: 12,3Delphi XE2: 13,4

Если они верны, я могу достоверно определить Delphi 2007, XE и XE2. Но как мне отличить Delphi 2009 от 2010?

Кроме того, эти цифры выглядят странно для меня. Кто-нибудь знает, есть ли различия между различными обновлениями Delphi, например? оригинальный выпуск Delphi XE2, возможно, начинался с 13.0 и с каждым обновлением увеличивал число после точки? Но если это так, как Delphi XE получил 12,3?

(Есть похожий вопросКак я могу сказать, какая версия Delphi использовалась для создания проекта но единственный ответ там довольно ограничен.)

На всякий случай кому-то еще это нужно: я только что добавилстраница в Delphi Wiki который суммирует все ответы и добавляет информацию для более новых версий Delphi (в настоящее время до Delphi 10.1).

Ответы на вопрос(3)

Ваш ответ на вопрос