Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   CFG Datei wird nicht erstellt (https://www.delphipraxis.net/116974-cfg-datei-wird-nicht-erstellt.html)

Oracle 9. Jul 2008 15:11


CFG Datei wird nicht erstellt
 
Hallo Leute,

ich wollte grade ein Projekt mit dem Kommandozeilen Compiler erstellen, habe aber Probleme, weil meine IDE die cfg Datei nicht automatisch erzeugt. Gibt es da einen Schalter den ich umlegen muss? Ich habe hier noch eine cfg Datei die ist aber schon über ein Jahr alt, und wurde wahrscheinlich noch mit Delphi 6 erstellt. Mein Delphi 2007 erstellt diese nicht.
Wer kann mir helfen?

Vielen Dank schon mal im Vorraus :-D

Muetze1 9. Jul 2008 15:48

Re: CFG Datei wird nicht erstellt
 
Moin!

CFG Dateien gibt es nur bis Delphi 7. Ab Delphi 2007 wird alles mit msbuild erstellt und somit benutzt er die Konfiguration der .dproj Dateien und braucht keine .cfg mehr. Somit bringt mich deine Aussage dazu zu behaupten, du übergibst das DPR file direkt dem dcc32. Das war ja selbst unter Delphi 7 schon der falsche Weg, dort sollte man eigentlich das make util nutzen. Somit: nutze msbuild project.dproj und alles wird gut...

Gruss
Muetze1

RavenIV 9. Jul 2008 15:53

Re: CFG Datei wird nicht erstellt
 
Zitat:

Zitat von Muetze1
CFG Dateien gibt es nur bis Delphi 7. Ab Delphi 2007 wird alles mit msbuild erstellt und somit benutzt er die Konfiguration der .dproj Dateien und braucht keine .cfg mehr. Somit bringt mich deine Aussage dazu zu behaupten, du übergibst das DPR file direkt dem dcc32. Das war ja selbst unter Delphi 7 schon der falsche Weg, dort sollte man eigentlich das make util nutzen. Somit: nutze msbuild project.dproj und alles wird gut...

Das mit dem make ist schon richtig.

Aber es geht auch anderst.
Bei meinem alten Arbeitgeber wurde eine batch verwendet, die den Kommandozeilen-Compiler mit den richtigen Parametern aufgerufen hat. Ausserdem hat sie noch gewisse Dateien umbenannt, gelöscht oder verschoben.
Damit wurde das komplette Projekt mit 17 exe und 23 dll erstellt.

Muetze1 9. Jul 2008 16:13

Re: CFG Datei wird nicht erstellt
 
Moin!

... Aber die CFG Datei darf dann explizit nicht mehr dazu existieren, weil die nimmt der dcc32 immernoch als Basis und mischt dann die Kommandozeilenoptionen mit ein.

Und bei einem reinem Kommandozeilenbuild mit Nutzung der CFG, musste man eigentlich ein Tool haben, was die .dof Dateiinhalt zu einer .cfg konvertiert hat. Dies haben wir uns hier selbst geschrieben, weil sonst wurden die Optionen der IDE nicht mit übernommen, ausser man editierte diese an jedem Rechner oder man würde die .cfg mit in der Versionsverwaltung einbringen. Letzteres wäre aber Schwachsinn und eine Fehlerquelle, da die CFG Datei eine temporäre Abfalldatei ist und es redundante Informationen gibt (CFG <-> DOF) und damit eine riesige potenzielle Fehlerquelle.

Gruss
Muetze1

Oracle 10. Jul 2008 12:47

Re: CFG Datei wird nicht erstellt
 
@Muetze1

Alles klar, dann versteh ich dass er die cfg Datei nicht erzeugt.
Aber wie starte ich nun msbuild? Muss ich mir das erst runterladen?

Muetze1 10. Jul 2008 14:37

Re: CFG Datei wird nicht erstellt
 
Moin!

Das wird mit dem RAD Studio bei dir installiert. Zu finden unter

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\

Und es gibt beim RAD Studio entsprechend den Punkt im Startmenü "RAD Studio-Befehlszeile". Diese setzt den Suchpfad auf den o.g. Pfad und somit kannst du dann einfach deine Projekte übersetzen...

MfG
Muetze1

Oracle 10. Jul 2008 15:50

Re: CFG Datei wird nicht erstellt
 
da wär ich ja allein nie drauf gekommen. Obergeil, danke dir.
Funktioniert auf Anhieb. Morgen werd ich es ausgiebig testen.

Oracle 11. Jul 2008 12:00

Re: CFG Datei wird nicht erstellt
 
Super, das funktioniert wo wie es soll. Aber ich hätte da trotzdem noch eine Frage.
Und zwar wie kann ich jetzt die Parameter die er beim Compilieren nutzt ändern, so dass sie sich von deren, die in der IDE stehen unterscheiden. So möchte ich dass er über die Kommandozeile immer ein Release Build erstellt und kein Debug.
Wo gebe ich das an?

Muetze1 11. Jul 2008 12:13

Re: CFG Datei wird nicht erstellt
 
Moin!

Zitat:

Zitat von Oracle
Und zwar wie kann ich jetzt die Parameter die er beim Compilieren nutzt ändern, so dass sie sich von deren, die in der IDE stehen unterscheiden. So möchte ich dass er über die Kommandozeile immer ein Release Build erstellt und kein Debug.
Wo gebe ich das an?

Eigeninitiative? RTFM? Einfach mal mit /? aufrufen?

Code:
Microsoft (R)-Buildmodul, Version 2.0.50727.832
[Microsoft .NET Framework, Version 2.0.50727.832]
Copyright (C) Microsoft Corporation 2005. Alle Rechte vorbehalten.

Syntax:             MSBuild.exe [Optionen] [Projektdatei]

Beschreibung:       Erstellt die in der Projektdatei angegebenen Ziele.
                     Wenn keine Projektdatei angegeben ist, durchsucht MSBuild
                     das aktuelle Arbeitsverzeichnis nach einer Datei mit
                     der Dateiendung "proj" und verwendet diese Datei.

Schalter:

  /help             Zeigt diesen Hilfetext an. (Kurzform: /? oder /h)

  /nologo           Startbanner und Copyrightmeldung nicht anzeigen.

  /version          Nur Versionsinformationen anzeigen. (Kurzform: /ver)

  @<Datei>          Befehlszeileneinstellungen aus einer Textdatei einfügen.
                     Wenn Sie mehrere Antwortdateien festlegen möchten,
                     müssen Sie jede Datei einzeln angeben.

  /noautoresponse   Die Datei "MSBuild.rsp" nicht automatisch einfügen.
                     (Kurzform: /noautorsp)

  /target:<Ziele>   Diese Ziele in diesem Projekt erstellen. Verwenden Sie ein
                     Semikolon oder ein Komma, um mehrere Ziele zu trennen,
                     oder geben Sie jedes Ziel einzeln an. (Kurzform: /t)
                     Beispiel:
                       /target:Resources;Compile

  /property:<n>=<v> Diese Eigenschaften auf Projektebene festlegen oder
                     überschreiben.
                     <n> ist der Eigenschaftenname, und <v> ist der
                     Eigenschaftenwert. Verwenden Sie ein Semikolon oder ein
                     Komma, um mehrere Eigenschaften zu trennen, oder
                     geben Sie jede Eigenschaft einzeln an. (Kurzform: /p)
                     Beispiel:
                       /property:WarningLevel=2;OutDir=bin\Debug

  /logger:<Protokollierung>
                     Diese Protokollierung verwenden, um Ereignisse
                     von MSBuild zu protokollieren.
                     Wenn Sie mehrere Protokollierungen angeben möchten, geben
                     Sie jede einzeln an.
                     Die Syntax für <Protokollierung> ist:
                        [<Protokollierungsklasse>,]<Protokollierungsassembly>
                        [;<Protokollierungsparameter>]
                     Die Syntax für <Protokollierungsklasse> ist:
                        [<partieller oder vollständiger Namespace>.]
                        <Protokollierungsklassenname>
                     Die Syntax für <Protokollierungsassembly> ist:
                        {<Assemblyname>[,<starker Name>] | <Assemblydatei>}
                     Die <Protokollierungsparameter> sind optional und werden
                     genau so an die Protokollierung weitergegeben, wie
                     Sie sie eingeben. (Kurzform: /l)
                     Beispiele:
                       /logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral
                       /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML

  /verbosity:<Ebene> Legt den Ausführlichkeitsgrad der Informationen
                     im Ereignisprotokoll fest.
                     Die verfügbaren Ausführlichkeitsgrade sind: q[uiet],
                     m[inimal], n[ormal], d[etailed] und diag[nostic].
                     (Kurzform: /v)
                     Beispiel:
                       /verbosity:quiet

  /consoleloggerparameters:<parameters>
                     Parameter für die Konsolenprotokollierung.
                     (Kurzform: /clp)
                     Die verfügbaren Parameter sind:
                        PerformanceSummary - Anzeigen der für Aufgaben, Ziele
                        und Projekte verwendeten Zeit.
                        NoSummary - keine Anzeige der zusammengefassten Fehler
                        und Warnungen am Ende.
                        NoItemAndPropertyList - keine Anzeige derListe
                        der Elemente und Eigenschaften beim Start jedes
                        Projektbuilds.
                      Beispiel:
                        /consoleloggerparameters:PerformanceSummary;NoSummary

  /noconsolelogger  Die Standardkonsolenprotokollierung deaktivieren.
                     Ereignisse werden nicht in der Konsole protokolliert.
                     (Kurzform: /noconlog)

  /validate         Das Projekt mithilfe des Standardschemas validieren.
                     (Kurzform: /val)

  /validate:<Schema> Das Projekt mithilfe des Standardschemas validieren.
                     (Kurzform: /val)
                     Beispiel:
                       /validate:MyExtendedBuildSchema.xsd

Beispiele:

        MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
        MSBuild MyApp.csproj /t:Clean /p:Configuration=Debug
Die Beispiele sollten es klarwerden lassen.

MfG
Muetze1

Oracle 14. Jul 2008 13:38

Re: CFG Datei wird nicht erstellt
 
Ok hast ja recht, da muss ich mich in ruhe mal durchwurschteln.
Ich dank dir auf jeden Fall für deine Hilfe. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz