Пользовательская цель Delphi XE всегда отключена



msbuild delphi-xe (1)

Я создал собственный файл MSBuild .targets который я включил в проект Delphi XE через IDE и включил его из контекстного меню Project Manager. Хотя файл проверяется, он всегда отключается после повторного сохранения файла проекта.

Вот упрощенная версия файла целей с именем Custom.targets .

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="Hello">
    <Message Text="Hello from custom target"/>
  </Target>
</Project>

В качестве самостоятельного файла это работает так, как ожидалось: набрав ...

MSBuild Custom.target /t:Hello

... в командной строке дается ожидаемое сообщение.

Добавление Custom.targets в проект Delphi через IDE отображает файл в диспетчере проектов, как и ожидалось, и файл .dproj теперь содержит строку ...

<TargetsFile Include="Custom.targets"/>

Я щелкнул правой кнопкой мыши файл в диспетчере проектов IDE и выбрал Enable . Но когда проект будет построен, Build окно Build :

[MSBuild Warning] Custom.targets (1): Игнорирование отключенного импорта: PathToProjectSource\\Custom.targets

При щелчке правой кнопкой мыши в Менеджере проектов по-прежнему отображается опция « Enable а не ожидаемая « Disable .

В командной строке MSBuild ProjectName.dproj /t:Hello также терпит неудачу.

Я попытался взломать файл .dproj чтобы добавить строку ...

<Import Project="Custom.targets"/>

Ввод MSBuild ProjectName.dproj /t:Hello теперь работает. Но в следующий раз, когда я сохраню файл проекта из IDE, оператор <Import> будет удален.

Кто-нибудь понял, что происходит неправильно?


Delphi генерирует весь контент dproj, и этот пользовательский импорт всегда будет удален.

Вы можете написать свои собственные файлы msbuild xml, но dproj принадлежит Delphi.

Если у вас нет исходного кода или вы хотите обезьянную патч, вы не можете это сделать.

Если вам действительно нужен гибкий способ xml для создания проектов delphi и создания целей в изобилии, попробуйте хотите или хотите vnext (моя вилка на битбакете)





delphi-xe