#c# #.net #nant
#c# #.net #nant
Вопрос:
Я пытаюсь создать проект (A) с использованием NANT. Проект (A) основан на другом проекте (B), который также построен с использованием NANT. Я хочу иметь возможность вызывать сборку зависимого проекта (B) из сборки проекта (A). Я попытался включить файл сборки проекта B в файл сборки проекта A. Это приводит к ошибке, поскольку два файла сборки содержат цели с одинаковыми именами.
Есть ли способ присвоить псевдоним включенному файлу сборки?
Ответ №1:
Вы можете сделать это следующим образом, создав «родительский» файл сборки, который использует действие «nant» для вызова других файлов сборки.
<target name="rebuild" depends="" >
<nant target="${target::get-current-target()}">
<buildfiles>
<include name="projectB.build" />
<include name="projectC.build" />
</buildfiles>
</nant>
</target>
Ответ №2:
Я пытался сделать это с помощью задачи include, но обнаружил, что задача nant — это на самом деле то, что мне требовалось.
Ответ №3:
У вас может быть несколько таких целевых объектов в вашем ‘master’ файле. Я часто использую следующую конструкцию для совместного использования набора файлов сборки между целевыми объектами, чтобы упростить обслуживание скрипта.
<fileset id="buildfiles.all">
<include name="projectB.build"/>
<include name="projectB.build"/>
</fileset>
<target name="build">
<nant target="${target::get-current-target()}">
<buildfiles refid="buildfiles.all" />
</nant>
</target>
<target name="clean">
<nant target="${target::get-current-target()}">
<buildfiles refid="buildfiles.all" />
</nant>
</target>
<target name="publish">
<nant target="${target::get-current-target()}">
<buildfiles refid="buildfiles.all" />
</nant>
</target>