Ich habe eine benutzerdefinierte MSBuild .targets
-Datei erstellt, die ich in einem Delphi XE-Projekt über die IDE aufgenommen und aus dem Kontextmenü des Projekt-Manager aktiviert habe. Obwohl die Datei überprüft wird, wird sie immer deaktiviert, nachdem ich die Projektdatei erneut gespeichert habe.Delphi XE benutzerdefinierte Build-Ziel ist immer deaktiviert
Hier ist eine vereinfachte Version der Zieldatei mit dem Namen Custom.targets
.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Hello">
<Message Text="Hello from custom target"/>
</Target>
</Project>
Als Stand-alone-Datei dies wie erwartet funktioniert: Typisierung ...
MSBuild Custom.target /t:Hello
... in der Befehlszeile gibt die erwartete Nachricht.
Custom.targets
zu einem Delphi-Projekt über die IDE Hinzufügen zeigt die Datei im Projekt-Manager wie erwartet, und die .dproj
Datei enthält nun die Linie ...
<TargetsFile Include="Custom.targets"/>
ich die Datei in der IDE-rechts geklickt Projektmanager und ausgewählt Enable
. Aber wenn das Projekt die Build
zeigt Meldungsfenster eingebaut ist:
[MSBuild Warning] Custom.targets (1) Ignoriert deaktiviert Import:
PathToProjectSource\\Custom.targets
Rechtsklick wieder noch in Project Manager zeigt die Enable
Option anstelle der erwarteten Disable
.
An der Befehlszeile MSBuild ProjectName.dproj /t:Hello
schlägt auch fehl.
Ich habe versucht, Hacking die .dproj
Datei die Zeile hinzufügen ...
<Import Project="Custom.targets"/>
Typing MSBuild ProjectName.dproj /t:Hello
jetzt funktioniert. Aber wenn ich das nächste Mal die Projektdatei von der IDE speichere, wird die <Import>
Anweisung entfernt.
Wer hat eine Idee, was schief geht bitte?
In Ihrem Beispiel msbuild von der Kommandozeile verwenden zeigen Sie _Custom.target_ während überall Andernfalls verwenden Sie _Custom.targets_. Welches ist es? –
Guter Platz - das hatte ich nicht bemerkt, obwohl ich viel auf den Code starrte. Ich komme mit Delphi für ein paar Tage nicht auf eine Maschine (im Krankenhaus!), Werde aber den Code mit "Ziel" oder "Zielen" konsistent versuchen, wenn ich kann. – delphidabbler
Kein Delphi-Benutzer, aber laut [this] (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/targetsfiles_xml.html) _Alle .targets-Dateien müssen gültige MSBuild-Skripte enthalten frei von Fehlern.Wenn die Datei Fehler aufweist, werden Sie benachrichtigt, und wenn das Projekt auf die ungültige .targets-Datei verweist, ist es deaktiviert und kann erst wieder aktiviert werden, wenn die Fehler behoben wurden. _ Möglicherweise lohnt sich eine doppelte Überprüfung, da alles korrekt ist Symptome, die du bekommst. –