Stworzyłem niestandardowy plik MSBuild .targets
, który zawarłem w projekcie Delphi XE za pośrednictwem IDE i włączono go z menu kontekstowego Menedżera projektu. Mimo że plik sprawdza, jest zawsze wyłączany po ponownym zapisaniu pliku projektu. Jest to uproszczona wersja pliku celów o nazwie Custom.targets
.Delphi XE niestandardowy cel kompilacji jest zawsze wyłączony
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Hello">
<Message Text="Hello from custom target"/>
</Target>
</Project>
jako samodzielny plik ten działa zgodnie z oczekiwaniami: pisanie ...
MSBuild Custom.target /t:Hello
... w wierszu poleceń daje oczekiwany komunikat.
Dodawanie Custom.targets
projektu Delphi poprzez IDE wyświetla plik Kierownika Projektu zgodnie z oczekiwaniami, a plik .dproj
zawiera teraz linię ...
<TargetsFile Include="Custom.targets"/>
ja prawym przyciskiem myszy plik w IDE Kierownik projektu i wybrana Enable
. Ale kiedy projekt jest zbudowany z Build
pojawiają się komunikaty:
[MSBuild Warning] Custom.targets (1): Zignorowanie wyłączoną import:
PathToProjectSource\\Custom.targets
prawym przyciskiem myszy ponownie w Project Manager nadal pokazuje Opcja Enable
zamiast oczekiwanego Disable
.
W linii komend MSBuild ProjectName.dproj /t:Hello
również nie działa.
Próbowałem hacking plik .dproj
dodać linię ...
<Import Project="Custom.targets"/>
Wpisanie MSBuild ProjectName.dproj /t:Hello
teraz działa. Ale następnym razem, gdy zapiszę plik projektu z IDE, zostanie usunięta instrukcja <Import>
.
Ktoś wpadł na pomysł, co jest nie tak?
W przykładzie zastosowania msbuild z linii poleceń można pokazać _Custom.target_ natomiast wszędzie w przeciwnym razie użyjesz _Custom.targets_. Który to jest? –
Dobre miejsce - nie zauważyłem tego pomimo dużej wpatrywania się w kod. Nie mogę dostać się do komputera z Delphi przez kilka dni (w szpitalu!), Ale spróbuję kod używając "celu" lub "celów" konsekwentnie, kiedy będę mógł. – delphidabbler
Nie jest użytkownikiem Delphi, ale zgodnie z tym (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/targetsfiles_xml.html) _Wszystkie pliki .targets muszą zawierać poprawne skrypty MSBuild bez błędów.Jeśli plik zawiera jakiekolwiek błędy, zostaniesz o tym powiadomiony, a jeśli projekt odwoła się do niepoprawnego pliku .targets, zostanie on wyłączony i nie będzie można go ponownie włączyć, dopóki błędy nie zostaną naprawione ._ Może być warte podwójnego sprawdzenia, wszystko jest poprawne, ponieważ to wyjaśnia objawy, które otrzymujesz. –