Поделиться через


Выбор целевого объекта для первой сборки

Файл проекта может содержать один или несколько элементов Target, определяющих способ сборки проекта. Модуль Microsoft Build Engine (MSBuild) выполняет сборку первой найденной цели, а также всех зависимостей, если файл проекта не содержит атрибут DefaultTargets или InitialTargets либо если целевой объект не указан в командной строке с помощью параметра -target.

Использование атрибута InitialTargets

Атрибут InitialTargets элемента Project указывает целевой объект, который будет выполняться первым, даже если целевые объекты указаны в командной строке или в атрибуте DefaultTargets.

Задание одного начального целевого объекта

  • Укажите целевой объект по умолчанию в атрибуте InitialTargets элемента Project. Например:

    <Project InitialTargets="Clean">

    В атрибуте InitialTargets можно указать сразу несколько начальных целевых объектов, расположив их по порядку и разделив точкой с запятой. Целевые объекты в этом списке будут выполняться последовательно.

Задание нескольких начальных целевых объектов

  • Укажите начальные целевые объекты, разделенные точкой с запятой, в атрибуте InitialTargets элемента Project. Например, чтобы выполнить целевой объект Clean и затем Compile, введите:

    <Project InitialTargets="Clean;Compile">

Использование атрибута DefaultTargets

Атрибут DefaultTargets элемента Project указывает, какой целевой объект или целевые объекты создаются, если целевой объект не задан явным образом в командной строке. Если целевые объекты указаны в обоих атрибутах InitialTargets и DefaultTargets и не указаны в командной строке, MSBuild выполняет целевые объекты, указанные в атрибуте InitialTargets, а затем целевые объекты, указанные в атрибуте DefaultTargets.

Задание одного целевого объекта по умолчанию

  • Укажите целевой объект по умолчанию в атрибуте DefaultTargets элемента Project. Например:

    <Project DefaultTargets="Compile">

    В атрибуте DefaultTargets можно указать сразу несколько целевых объектов по умолчанию, расположив их по порядку и разделив точкой с запятой. Целевые объекты в этом списке будут выполняться последовательно.

Задание нескольких целевых объектов по умолчанию

  • Укажите целевые объекты по умолчанию, разделенные точкой с запятой, в атрибуте DefaultTargets элемента Project. Например, чтобы выполнить целевой объект Clean и затем Compile, введите:

    <Project DefaultTargets="Clean;Compile">

Использование параметра -target

Если целевой объект по умолчанию не определен в файле проекта или вы не хотите использовать его, можно использовать параметр командной строки -target, чтобы указать другой целевой объект. Целевые объекты, заданные с помощью параметра -target, выполняются вместо целевых объектов, заданных в атрибуте DefaultTargets. Целевые объекты, заданные в атрибуте InitialTargets, всегда выполняются первыми.

Использование целевого объекта, отличного от заданного по умолчанию, в первую очередь

  • Укажите целевой объект в качестве первого с помощью параметра командной строки -target. Например:

    msbuild file.proj -target:Clean

Использование нескольких целевых объектов, отличных от заданных по умолчанию, в первую очередь

  • Задайте целевые объекты, разделяя их точками с запятой или запятыми, с помощью параметра командной строки -target. Например:

    msbuild <file name>.proj -t:Clean;Compile