AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Delphi 2009 Projekt im Batch kompilieren (OHNE IDE!)
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 2009 Projekt im Batch kompilieren (OHNE IDE!)

Ein Thema von kaju74 · begonnen am 14. Dez 2009 · letzter Beitrag vom 14. Dez 2009
Antwort Antwort
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Re: Delphi 2009 Projekt im Batch kompilieren (OHNE IDE!)

  Alt 14. Dez 2009, 15:02
Zitat von kaju74:
Hier sehe ich, das mit dem Parameter "/p:Configuration=Release" bestimmt werden kann, ob das Projekt als "Debug" oder "Release" gebuildet werden kann. Sowas wollte ich auch in einem Verbund aus TeamCity und MSBuild machen, weiß aber bisher nicht, wo ich das eintragen kann/soll. Das Ganze läuft auf einer VM (BuildServer)...lokal hatte ich mit msbuild noch nichts gemacht, sonst wäre mir diese Idee vielleicht vonselber gekommen
Wir haben auf unserem BuildServer mit der Verwendung von msbuild die Unterschiede zu VisualStudio und Delphi deutlich reduzieren können.

Die einzelnen Properties und Targets sind in den *.dproj und *.targets Dateien definiert.
Letztere werden von den *.dproj Dateien referenziert.

JclPackagesD110.groupproj (Beispiel JEDI JCL Projekt)
...
<Target Name="Build">
<CallTarget Targets="Jcl;JclVcl;JclContainers;JclBaseExpert;Jc lDebugExpert;JclFavoriteFoldersExpert;
JclProjectAnalysisExpert;JclRepositoryExpert;JclSI MDViewExpert;JclStackTraceViewerExpert;JclVersionC ontrolExpert" />
</Target>
...
oder
Jcl.dproj (Beispiel JEDI JCL Projekt)
...
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
...
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
...
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
...
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
...
oder
Borland.Delphi.Targets (gehört z.B. zu Delphi 2007)
...
<Target Name="default" DependsOnTargets="Make"/>
...
Wie man erkennen kann, sind die default Optionen: /t:Make /p:Configuration=Release /platform=AnyCPU
Du kannst im Delphi ja eigene Gruppen definieren und ansteuern. Da in den Gruppen auf DEFINES, Directories, ... gesetzt werden können, wäre auch so was wie
Code:
msbuild SuperProjekt.dproj /t:build /p:Configuration=Kunde1
msbuild SuperProjekt.dproj /t:build /p:Configuration=Kunde2
msbuild SuperProjekt.dproj /t:build /p:Configuration=Kunde3
denkbar.
Via Define werden dann z.B. Kundenspezifische Änderungen kompiliert.
Nach dem Build Liegen dann z.B. in D:\SuperProjekt\Release\Kunde1, D:\SuperProjekt\Release\Kunde2, D:\SuperProjekt\Release\Kunde3 die ausführbaren Dateien.


ruf mal msbuild mit dem Parameter /help auf

Code:
M:\d11_test\shared\Baselines\JEDI\JCL\Delphi11\Source\packages>msbuild /help

Microsoft (R)-Buildmodul, Version 2.0.50727.3053
[Microsoft .NET Framework, Version 2.0.50727.3082]
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
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz