Sto cercando di capire automaticamente quale versione di Delphi (da Delphi 5 a XE2 installata sul mio computer) utilizzare per aprire un determinato progetto senza aggiornare quel progetto per errore.Come determinare la versione di Delphi che ha creato un progetto Delphi
Fino a Delphi 7 è presente un file .dof in formato .ini per ogni progetto. Delphi 5 non ha una voce che potrebbe aiutare, ma a partire da Delphi 6 è presente una sezione [FileVersion] che contiene i seguenti valori:
- Delphi 5: n/a
- Delphi 6: 6.0
- Delphi 7: 7,0
quindi credo che si deposita che, dal momento che le vecchie versioni di Delphi non mi riguardano.
per Delphi 2005 e il 2006 v'è un file in formato XML .bdsproj contenente una voce di versione: \ BorlandProject \ PersonalityInfo \ Option \ Opzione
In Delphi 2005 Sembra che questo:
<Option Name="Version" Type="String">1.0</Option>
In Delphi 2006 in questo modo:
<Option Name="Version">1.0</Option>
Quindi posso controllare se esiste l'attributo "Tipo" e in base a quello decidere su Delphi 2005 o 2006. Qualcuno potrebbe dare un'occhiata ai suoi progetti Delphi 2005 e 2006 e verificare questa differenza? (O forse hai un'idea migliore?)
modifica: Ho appena provato a verificare questo e ho scoperto che Delphi 2005 non aggiunge sempre l'attributo di tipo. Quindi ora sono bloccato.
modifica: Forse il GUID memorizzato è unico per la versione Delphi?
- Delphi 2005: {87D03616-A4C7-4B5A-AF0F-0164EA60BC59}
- Delphi 2006: {CFE1BEE6-6FDE-4241-8CA5-D38D14EAA768}
In qualche modo ne dubito, io sono paura che il GUID possa rappresentare SKU diversi (Professional/Architetto ecc.). Ma forse potresti verificarlo?
A partire da Delphi 2007 è disponibile un file .dproj in un formato XML diverso. Il formato di Delphi 2007 non contiene alcuna voce di versione che ho trovato, ma da Delphi 2009 sulla non sembra essere la seguente voce:
\project\PropertyGroup\ProjectVersion
Questi sono i valori che ho trovato nel mio file .dproj:
- Delphi 2007: N/A
- Delphi 2009: 12,0
- Delphi 2010: 12.0
- Delphi XE: 12.3
- Delphi XE2: 13,4
Se questi sono corretti, ho potuto determinare in modo affidabile Delphi 2007, XE e XE2. Ma come faccio a distinguere tra Delphi 2009 e il 2010?
Inoltre, questi numeri mi sembrano strani. Qualcuno sa se ci sono differenze tra i vari aggiornamenti di Delphi, ad es. la versione originale di Delphi XE2 potrebbe iniziare con 13.0 e con ogni aggiornamento incrementare il numero dopo il punto? Ma se è così, in che modo Delphi XE ha ottenuto 12.3?
(c'è una domanda simile How can I tell what version of Delphi was used to create a project ma la risposta singola non è abbastanza limitato.)
Nel caso in cui nessun altro ha bisogno di questo: ho appena aggiunto una page to the Delphi Wiki che riassume tutte le risposte e aggiunge le informazioni per le versioni più recenti di Delphi (attualmente fino a Delphi 10.1).
Perché avete bisogno di questo? Sicuramente sai con quale versione di Delphi sono costruiti i tuoi progetti. –
@DavidHeffernan vedere la mia risposta qui sotto. – dummzeuch
Suggerirei di seguire una semplice convenzione di denominazione per identificare chiaramente la versione delphi di destinazione per un particolare file di progetto. Per esempio. Inseriamo i nostri file di progetto in una sottocartella. Quindi il nome della cartella indica la versione di Delphi da utilizzare. –