Как вы называете переопределенную цель MSBuild? - PullRequest
11 голосов
/ 12 мая 2009

В MSBuild вы можете переопределить <Target /> из другого вашего собственного файла. Например, цель AfterBuild , включенная в файл Microsoft.Common.targets, просто определив свою собственную цель с тем же именем:

<Target Name="AfterBuild">
    <!-- Do something different -->
</TargetName>

Вы увидите такую ​​заметку:

Переопределение цели "AfterBuild" в проекте "C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets" с целью "AfterBuild" из проекта "XXXXX".

Есть ли способ вызвать исходную цель AfterBuild?

Я хотел бы сделать это, чтобы применить определенные сложные цели по умолчанию, а затем выполнить исходное поведение. Многие цели, такие как Build, предоставляют свойство BuildDependsOn, которое можно использовать для этого. Многие другие этого не делают, и я хотел бы переопределить их, не дублируя полностью их содержимое.

1 Ответ

13 голосов
/ 14 мая 2009

Когда скрипт MSBuild обрабатывается, он также обрабатывает импортированные файлы. Результатом будет единственное в памяти каноническое представление всего сценария. При обнаружении цели, которая уже существует, предыдущее определение отбрасывается, поэтому невозможно вызвать исходную цель.

Сайед Ибрагим Хашими

Моя книга: Внутри Microsoft Build Engine: Использование MSBuild и Team Foundation Build

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...