2014-06-04 26 views
7

In C++ Builder XE5.Il file .res deve essere nel controllo del codice sorgente?

mia comprensione is that il file binario MyProject.res (che viene creato dal compilatore nella stessa directory del file .cbproj) contiene le versioni l'icona del programma ed i dettagli della versione di progetto compilato (anche se la mia sembra anche contenere un XML manifesto) .

Ma queste informazioni sono anche contenute nel file .cbproj e nello .ico files; e se cancello il file .res, sembra che venga ricreato esattamente era la prossima volta che apro il progetto.

Quindi è sicuro contrassegnare *.res come non nel controllo del codice sorgente? (Io uso git). E/O è possibile averlo generato nella stessa directory dei file oggetto, quindi non è mescolato con la fonte?

(Questo sicuramente non era sicuro in C++ Builder 5 - se hai cancellato il file .res, si è lamentato che non è riuscito a trovarlo e hai perso le icone).

Aggiornamento: Questo vale anche per il file .tlb? Questo sembra essere compilato in base al file .ridl e, se lo elimino, viene rigenerato automaticamente.

+0

Per quanto riguarda i file di risorse: non penso sia necessario avere i file .res sotto il controllo del codice sorgente se si è un singolo sviluppatore. Alcuni dei miei colleghi hanno comunque segnalato problemi relativi a progetti con più utenti: le risorse sono state "incasinate" dopo aver estratto i file dal repository (subversion). Specificamente le proprietà trasparenza/colore di sfondo delle immagini TImageList. Tuttavia, sembra che riguardi solo alcuni sistemi e sfortunatamente non so perché. Per quel solo motivo includiamo i file .res nel nostro controllo sorgente. – HvS

+0

Nota: i file estratti a cui mi riferivo erano i problemi con i file .dfm. – HvS

+0

I DFM hanno sicuramente bisogno di essere nel controllo del codice sorgente in quanto sono memorizzati i dettagli dei moduli! AFAIK non esiste alcuna relazione tra DFM e RES? Aggiornamento –

risposta

4

C++ Builder 6.0 e versioni successive ricreeranno i file RES se eliminati. Li tratto come altri file temporanei/di build (come i file OBJ) e non li inserisco nel software di controllo della versione. Ho backup notturni che includono tutti questi file però, che ritengo sia ancora una buona pratica.

Non sono sicuro dei file TLB. Vorrei eliminare temporaneamente (aka-rename) uno e vedere se viene ricreato nello stesso stato. In tal caso, dovrebbe essere uguale ai file RES.

Questo non vale per le librerie di terze parti, se tutto quello che hai sono risorse compilate. In tal caso, non lo posiziono ancora nel mio controllo di versione, poiché non ho intenzione di modificarli. Ho solo i miei backup.

+2

Prima dell'introduzione di RIDL in C++ Builder 2009, NON era sicuro eliminare i file TLB, altrimenti si perderebbero le Librerie dei tipi. Quando è stato introdotto RIDL, TLB è diventato un file intermedio che viene ricreato quando necessario. –

3

Per quello che vale, le impostazioni predefinite di controllo del codice sorgente TFS devono escludere *.res ma includere *.tlb.

Quindi è necessario prevedere che i file *.res vengano creati dalle relative build associate. Se la build non sarà presente, sarà necessario includere il file *.res.

Ho il sospetto che tu abbia ragione sui file in corso di creazione, ma forse TFS non li esclude in base all'impostazione predefinita perché l'estensione non è del tutto esclusiva dei file di libreria di tipo OLE.

Problemi correlati