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


Справочник по командной строке MSBuild

При использовании MSBuild.exe для создания файла проекта или решения можно включить несколько переключателей для указания различных аспектов процесса.

MSBuild.exe [Switches] [ProjectFile]

Аргументы

Аргумент

Описание

ProjectFile

Создает целевые объекты в указанном файле проекта. Если не указать файл проекта, MSBuild выполнит поиск расширения имени файла, который заканчивается на "proj", и использует этот файл, в текущем рабочем каталоге. Можно также указать файл решения Visual Studio для этого аргумента.

Переключатели

Параметр

Краткая форма

Описание

/help

/? или /h

Отобразить сведения об использовании. Ниже представлен пример команды.

msbuild.exe /?

/detailedsummary

/ds

Показывать подробные сведения о созданных конфигурациях и их запланированное использование в узлах в конце журнала сборки.

/ignoreprojectextensions: extensions

/ignore: extensions

Игнорировать указанные расширения при определении создаваемого файла проекта. Используйте точку с запятой или запятую для разделения нескольких расширений, как показано в следующем примере:

/ignoreprojectextensions:.vcproj,.sln

/maxcpucount[:number]

/m[:number]

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

В следующем примере MSBuild использует для создания три процесса MSBuild, что позволяет создать три проекта одновременно:

msbuild myproject.proj /maxcpucount:3

/noautoresponse

/noautorsp

Не включать какие-либо файлы MSBuild.rsp автоматически.

/nodeReuse:value

/nr:value

Включить или отключить повторное использование узлов MSBuild. Можно указать следующие значения:

  • True. Узлы сохраняются после создания, чтобы последующие сборки могли использовать их (по умолчанию).

  • False. Узлы не сохраняются после создания.

Узел соответствует выполняющемуся проекту. При включении переключателя /maxcpucount несколько узлов могут выполняться параллельно.

/nologo

Не отображать загрузочный баннер или сообщение об авторских правах.

/preprocess[:filepath]

/pp[:filepath]

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

Если вы укажете filepath, сводный файл проекта выведет данные в файл. В противном случае выходные данные появятся в окне консоли.

Дополнительные сведения об использовании элемента Import для вставки файла проекта в другой файл проекта см. в разделах Элемент Import (MSBuild) и Как использовать одинаковый целевой объект в нескольких файлах проектов.

/property:name=value

/p:name=value

Задать или переопределить указанные свойства уровня проекта, где name является именем свойства, а value — значением свойства. Укажите каждое свойство отдельно или используйте точку с запятой или запятую для разделения нескольких свойств, как показано в следующем примере:

/property:WarningLevel=2;OutDir=bin\Debug

/target:targets

/t:targets

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

/target:Resources;Compile

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

Целевой объект — это группа задач. Для получения дополнительной информации см. Цели MSBuild.

/toolsversion:version

/tv:version

Указывает версию набора инструментов, который используется для создания проекта, как показано в следующем примере:/toolsversion:3.5.

С помощью этого переключателя можно создать проект и указать версию, которая отличается от версии, указанной в Элемент Project (MSBuild). Для получения дополнительной информации см. Переопределение параметров ToolsVersion.

Для MSBuild 4.5 можно указать следующие значения version: 2.0, 3.5 и 4.0. При выборе версии 4.0 свойство сборки VisualStudioVersion указывает, какой вспомогательный набор инструментов следует использовать. Дополнительные сведения см. в подразделе "Вспомогательные наборы инструментов" раздела Набор инструментов MSBuild (ToolsVersion).

Набор инструментов состоит из задач, целей и средств, используемых для создания приложения. Средства включают компиляторы csc.exe и vbc.exe. Дополнительные сведения о наборах инструментов см. в разделах Набор инструментов MSBuild (ToolsVersion), Стандартные и настраиваемые конфигурации наборов инструментов и MSBuild: обзор настройки для различных версий.

Примечание

Версия набора инструментов отличается от версии целевой платформы (версии .NET Framework), для которой создается проект.Для получения дополнительной информации см. MSBuild: целевая рабочая среда и целевая платформа.

/validate:[schema]

/val[schema]

Проверить файл проекта и, если проверка прошла успешно, создать проект.

Если не указать schema, проект проверяется по схеме, заданной по умолчанию.

При указании schema проект проверяется по указанной вами схеме.

Примером является следующий параметр: /validate:MyExtendedBuildSchema.xsd.

/verbosity:level

/v:level

Указывает объем сведений, отображаемый в журнале сборки. Каждое средство ведения журнала отображает события, в соответствии с уровнем детализации, заданным для этого средства ведения журнала.

Можно указать следующие уровни детализации: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic].

Примером является следующий параметр: /verbosity:quiet.

/version

/ver

Отобразить только сведения о версии. Проект не создается.

@file

Вставить параметры командной строки из текстового файла. Если имеется несколько файлов, можно указать их отдельно. Для получения дополнительной информации см. Файлы ответов MSBuild.

Ключи для средств ведения журнала

Параметр

Краткая форма

Описание

/consoleloggerparameters:

parameters

/clp:parameters

Передать указанные параметры в средство ведения журнала консоли, в окне консоли которого отображаются сведения о сборке. Можно задать следующие параметры:

  • СводкаПроизводительности. Отобразить время, затраченное на выполнение задач, целей и проектов.

  • Сводка. Показать сводку ошибок и предупреждений в конце.

  • БезСводки. Не показывать сводку ошибок и предупреждений в конце.

  • ТолькоОшибки. Показать только ошибки.

  • ТолькоПредупреждения. Показать только предупреждения.

  • БезСпискаЭлементовИСвойств. Не показывать список элементов и свойств, появляющийся в начале каждой сборки проекта, если значение уровня детализации — diagnostic.

  • ПоказатьКоманднуюСтроку. Показать сообщения TaskCommandLineEvent.

  • ПоказатьОтметкуВремени. Показывать метку времени в качестве префикса для любого сообщения.

  • ПоказатьИдентификаторСобытия. Показать идентификатор события для каждого запущенного события, завершенного события и сообщения.

  • ПринудительноОтключитьВыравнивание. Не выравнивать текст по размеру буфера консоли.

  • ОтключитьЦветКонсоли. Использовать цвета консоли по умолчанию для всех сообщений журнала.

  • ОтключитьМногопроцессорноеВедениеЖурнала. Отключить многопроцессорное ведение журнала выходных данных в режиме, отличном от многопроцессорного.

  • ВключитьМногопроцессорноеВедениеЖурнала. Включить многопроцессорное ведение журнала даже при работе в режиме, отличном от многопроцессорного. Такое ведение журнала включено по умолчанию.

  • УровеньДетализации. Переопределить параметр /verbosity для данного средства ведения журнала.

Используйте точку с запятой или запятую для разделения нескольких параметров, как показано в следующем примере.

/consoleloggerparameters:PerformanceSummary;NoSummary /verbosity:minimal

/distributedFileLogger

/dfl

Записывать выходные данные сборки каждого узла MSBuild в собственный файл. Первоначальным расположением этих файлов является текущий каталог. По умолчанию файлам присваивается имя "MSBuildNodeId.log". Чтобы указать расположение файлов и других параметров для значения средствоВеденияЖурналаФайла, можно использовать переключатель /fileLoggerParameters.

Если назвать файл журнала, используя переключатель /fileLoggerParameters, распределенное средство ведения журнала будет использовать это имя как шаблон и при создании файла журнала для каждого узла добавит к нему идентификатор узла.

/distributedlogger:

central logger*

forwarding logger

/dl:central logger*forwarding logger

Вести журнал событий из MSBuild, присоединяя разные экземпляры журнала к каждому узлу. Чтобы указать несколько средств ведения журнала, укажите отдельно каждое из них.

Синтаксис средства ведения журнала позволяет указать средство ведения журнала. Синтаксис средства ведения журнала см. в переключателе /logger ниже.

В следующих примерах демонстрируется использование этого переключателя.

/dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll

/fileLogger

[number]

/fl[number]

Записать выходные данные сборки в один файл в текущем каталоге. Если не указать number, выходной файл будет назван msbuild.log. Если указать number, именем выходного файла будет msbuildn.log, где n — number. Значение Number может быть цифрой от 1 до 9.

Чтобы указать расположение файла и других параметров для значения средствоВеденияЖурналаФайла, можно использовать переключатель /fileLoggerParameters.

/fileloggerparameters:[number]

parameters

/flp:[ number] parameters

Указывает любые дополнительные параметры для средства ведения журнала файла и распределенного средства ведения журнала файла. Наличие этого переключателя означает, что присутствует соответствующий переключатель /filelogger[number]. Значение Number может быть цифрой от 1 до 9.

Можно использовать все параметры, которые указаны для /consoleloggerparameters. Также можно использовать один или несколько следующих параметров:

  • ФайлЖурнала. Путь к файлу журнала, в который записывается журнал сборки. Распределенное средство ведение журнала файла добавляет этот путь к именам файлов журнала.

  • Добавить. Определяет, добавляется ли журнал сборки в файл журнала или перезаписывает его. Если задать переключатель, журнал сборки добавляется в файл журнала. Если переключатель отсутствует, содержимое существующего файла журнала перезаписывается.

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

    В этом случае файл перезаписывается: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log.

    В этом случае файл добавляется: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=true.

    В этом случае файл добавляется: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=false. 

  • Кодировка. Указывает кодировку для файла (например, UTF-8, Юникод или ASCII).

В следующем примере создаются отдельные файлы журнала для предупреждений и ошибок.

/flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly

Ниже приведены примеры других возможностей.

/fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8

/flp:Summary;Verbosity=minimal;LogFile=msbuild.sum

/flp1:warningsonly;logfile=msbuild.wrn

/flp2:errorsonly;logfile=msbuild.err

/logger:

logger

/l:logger

Задает средство ведения журнала для записи событий MSBuild. Чтобы указать несколько средств ведения журнала, укажите отдельно каждое из них.

Используйте следующий синтаксис для logger: [LoggerClass,]LoggerAssembly[;LoggerParameters].

Используйте следующий синтаксис для LoggerClass: [PartialOrFullNamespace.]LoggerClassName.

Если сборка содержит ровно одно средство ведения журнала, его класс указывать не нужно.

Используйте следующий синтаксис для LoggerAssembly: {AssemblyName[,StrongName] | AssemblyFile}.

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

В следующих примерах используется переключатель /logger.

/logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML

/noconsolelogger

/noconlog

Отключить средство ведения журнала консоли по умолчанию и не записывать события на консоль.

Пример

В следующем примере создается целевой объект rebuild проекта MyProject.proj.

MSBuild.exe MyProject.proj /t:rebuild

Файл MSBuild.exe можно использовать для выполнения более сложных сборок. Например, можно использовать его для создания конкретных целевых объектов определенных проектов в решении. В следующем примере повторно создается проект NotInSolutionFolder и удаляется проект InSolutionFolder, который находится в папке решения NewFolder.

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean

См. также

Ссылки

Общие свойства проектов MSBuild

Другие ресурсы

Справочные сведения о MSBuild