2008-09-25 6 views
5

Ich habe eine alte Delphi-Codebasis, die ich pflegen muss, viele DLLs, einige älter als andere. In einigen dieser DLLs gibt es keine Versionsinformationen im Dialogfeld Projektoptionen. Die Steuerelemente zum Hinzufügen einer Version sind ausgegraut und ich kann nicht einmal eine Versionsnummer hinzufügen, indem ich die .DOF-Datei manuell bearbeite. Wie kann ich in diesen Projekten eine Versionsnummer angeben?Ich kann keine Versionsnummer in dieses alte Delphi-Projekt aufnehmen, das ich geerbt habe. Wie repariere ich es?

Antwort

10

Überprüfen Sie, ob die Standard-RES-Datei in der Projektquellposition vorhanden ist. Delphi enthält die Versionsnummer des Projekts in einer .res-Datei mit demselben Namen wie die .dpr-Datei. Wenn die .RES-Datei nicht vorhanden ist, besteht die einfachste Möglichkeit zum Wiederherstellen darin, die Compileranweisung {$ R * .RES} zur .DPR-Datei unmittelbar nach der uses-Klausel hinzuzufügen.

library foolib;  

uses 
    foo in 'foo.pas', 
    baz in 'baz.pas'; 

{$R *.RES} 

exports 
    foofunc name 'foofunc'; 

end; 

Sobald Sie die {$ R * .RES} Compiler-Direktive Delphi hinzufügen wird Ihnen sagen, es die foolib.res Ressource-Datei neu erstellt hat.

2

Sie können Ressourcendateien in Bibliotheken erstellen und einbetten, die unter Delphi mithilfe der $ R-Direktive erstellt wurden.

Diese link enthält Informationen zum Erstellen der RES-Datei. Delphi hat einen eigenen Ressourcen-Compiler: BRCC32

+0

Hat John das nicht schon geschrieben? – gabr

+2

Ja, aber ich habe den BRCC32 nicht erwähnt. –

+0

:-(Da John die Frage zur selben Zeit beantwortet hat, als ich meine geschrieben habe (und daher habe ich seine nicht gesehen), dachte ich, die Abstimmung sei ein wenig hart! - Ich habe auch einen Link zu den Ressourceninformationen bereitgestellt * und * erwähnte den Ressourcen-Compiler! Es ist fast genug, damit ich aufhört zu lächeln! – Andrew

0

Ich benutze ein Build-Kontrollsystem (FinalBuilder) und das ist in der Lage, Versionsressourcen zu allen meine DLLs und EXEs, die alle kohärent sind. Daher kann ich sicher sein, dass der Dateisatz alle mit demselben Build versehen ist. Es gibt einige Delphi-Projekte, die standardmäßig keine Versionen haben, und FB wird sie trotzdem hinzufügen.

+0

Klingt interessant, ich werde es für zukünftige Projekte berücksichtigen. –

6

Es scheint, dass die Ressourcenrichtlinie {$R *.RES} in Ihrer .dpr-Datei fehlt (oder in Bedingungsdefinitionen eingeschlossen ist), sodass die IDE sie nicht findet.

0

Die Einbeziehung von Versionsinformationen in DLLs ist ein wenig unberechenbar. Wenn Sie lib_suffix angeben, wird die Versionsinformation nicht aktualisiert.