AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MSBuild no Target Found

Ein Thema von Sander22 · begonnen am 9. Dez 2024 · letzter Beitrag vom 10. Dez 2024
Antwort Antwort
Sander22

Registriert seit: 6. Dez 2024
3 Beiträge
 
#1

MSBuild no Target Found

  Alt 9. Dez 2024, 18:06
Hey,

Ich bin im Moment ein am verzweifeln, ich versuche meine groupproj über MSBuild zu bauen per Batch Datei. Egal was ich mache, ich bekomme diesen Fehler und ich weiß nicht genau warum ich diesen bekomme.

Error: error MSB4040: Das Projekt enthält kein Ziel

Befehl: msbuild MainProject.groupproj

Ich glaube einfach ich übersehe etwas einfaches, aber trotzdem finde ich es nicht

Hilfe nehme ich gerne, falls noch irgendwelche Daten fehlen für ich gerne einfach schreiben.

Grüße Sander
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.575 Beiträge
 
Delphi 12 Athens
 
#2

AW: MSBuild no Target Found

  Alt 9. Dez 2024, 18:44
Füge mal die Parameter
Code:
/t:build /p:config="Release"
zum MSBuild-Aufruf hinzu.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Sander22

Registriert seit: 6. Dez 2024
3 Beiträge
 
#3

AW: MSBuild no Target Found

  Alt 10. Dez 2024, 10:00
habe ich gemacht aber jetzt spuckt er mir das aus:

Befehl:

Code:
msbuild MainProject.groupproj /t:build /p:config="Release"

pause
Error:
Code:
Fehler beim Buildvorgang.

"MainProject.groupproj" (build Ziel) (1) ->
"Core.dproj" (Standardziel)
 (2) ->
  Core.dproj : error MSB404
0: Das Projekt enthält kein Ziel.

    0 Warnung(en)
    1 Fehler

Verstrichene Zeit 00:00:00.04
  Mit Zitat antworten Zitat
Sander22

Registriert seit: 6. Dez 2024
3 Beiträge
 
#4

AW: MSBuild no Target Found

  Alt 10. Dez 2024, 10:02
Okay ich habe selbst den Fehler gefunden, aber verstehe ihn nicht ganz.
Ich habe die rsvars.bat nicht aufgerufen, aber wieso muss ich das jedes mal machen?

Grüße Sander
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.790 Beiträge
 
Delphi 12 Athens
 
#5

AW: MSBuild no Target Found

  Alt 10. Dez 2024, 10:30
Du kannst die Variablen auch systemweit als Umgebungsvariablen deklarieren. Einfacher ist es aber, diese mit der Batchdatei zu setzen, weil du ansonsten diese erstens bei der nächsten Delphiversion anpassen musst, zweitens aber auch nicht verschiedene Delpiversionen parallel nutzen könntest.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.287 Beiträge
 
Delphi 12 Athens
 
#6

AW: MSBuild no Target Found

  Alt 10. Dez 2024, 10:36
Dort sind auch weitere Suchpfade mit enthalten.

Die DPROJ ist ein Script für MSBuild, welches weitere Scripte einbindet (liegt in 'nem Suchpfad), die wiederum Scripte einfügen,
und in diesen Dateien (Scripten) wird unter anderem auch das BuildTarget definiert.


Leider gibt es keine Warnung/Hinweis, wenn eine der Dateien nicht gefunden wurde.


Öffne deine .dproj mal mit einem TextEditor.
XML-Code:
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
Die letzten Beiden gibt es meistens nicht.
Aber die Erste ist hier wichtig und jene importiert weitere proj.

Ganz früher fehlte teilweise die Condition= womit es dann im Fehlerfall wunderschön knallte.

Aus demselben Grund könntest du auch das /p:Config="Release" weglassen
und es wird das genommen, was du zuletzt in der IDE ausgewählt hast (Debug, Release oder sonstwas).
Ebenso kann man auch den Compiler auswählen /p:Platform=Win32 .
(Fehlen diese Angaben, dann gibt es ganz oben, in der DPROJ, diese Property, mit einer Condition ala "if empty")
XML-Code:
<Config Condition="'$(Config)'==''">Release</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
Aber wenn man es angibt, dann wird immer das "angegebene" genommen, egal was zuletzt in IDE/Debugger gewählt wurde.

Code:
call "C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\rsvars.bat"
msbuild /t:Build /p:Config=Release /p:Platform=Win32 MainProject.groupproj
pause
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (10. Dez 2024 um 10:49 Uhr)
  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 21:56 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 by Thomas Breitkreuz