Utworzyłem niestandardowy .targetsplik MSBuild , który umieściłem w projekcie Delphi XE za pośrednictwem IDE i włączyłem go z menu kontekstowego Project Manager. Chociaż plik jest weryfikowany, zawsze zostaje wyłączony po ponownym zapisaniu pliku projektu.
Oto uproszczona wersja pliku docelowego o nazwie Custom.targets.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Hello">
<Message Text="Hello from custom target"/>
</Target>
</Project>
Jako samodzielny plik działa to zgodnie z oczekiwaniami: wpisywanie ...
MSBuild Custom.target /t:Hello
... w wierszu poleceń wyświetla oczekiwany komunikat.
Dodanie Custom.targetsdo projektu Delphi za pośrednictwem IDE wyświetla plik w Menedżerze projektu zgodnie z oczekiwaniami, a .dprojplik zawiera teraz wiersz ...
<TargetsFile Include="Custom.targets"/>
Kliknąłem plik prawym przyciskiem myszy w menedżerze projektów IDE i wybrałem Enable. Ale kiedy projekt jest budowany, Buildokno komunikatu wyświetla:
[Ostrzeżenie programu MSBuild] Custom.targets (1): Ignorowanie wyłączonego importu:
PathToProjectSource\\Custom.targets
Ponowne kliknięcie prawym przyciskiem myszy w Menedżerze projektów nadal pokazuje Enableopcję zamiast oczekiwanej Disable.
W linii poleceń MSBuild ProjectName.dproj /t:Hellorównież nie działa.
Próbowałem zhakować .dprojplik, aby dodać wiersz ...
<Import Project="Custom.targets"/>
MSBuild ProjectName.dproj /t:HelloTeraz pisanie działa. Ale następnym razem, gdy zapiszę plik projektu z IDE, <Import>instrukcja zostanie usunięta.
Czy ktoś ma pojęcie, co się dzieje, proszę?
/t:Hellojak i ze środowiska IDE za pomocą prawego przycisku myszy w Project Manager - Targets - Hello. Dodałem Custom.targetsdo projektu, klikając prawym przyciskiem myszy w Menedżerze Projektu - Dodaj - (przeglądając plik). Ścieżka jest tym samym katalogiem, co plik .dproj.