Справочные сведения о командной строке MSBuild
Обновлен: Ноябрь 2007
Программа MSBuild.exe собирает заданный проект или файл решения с указанными параметрами.
MSBuild.exe [Switches] [ProjectFile]
Аргументы
Аргумент |
Описание |
---|---|
ProjectFile |
Собирает цели, указанные в файле проекта. Если файл проекта не задан, MSBuild ищет в текущем рабочем каталоге файл с расширением, которое оканчивается символами "proj" или "sln", и использует этот файл. Этот аргумент также принимает файлы решений Visual Studio 2005. |
Переключатели
Переключатель |
Описание |
---|---|
/help |
Отображает сведения об использовании. /? и /h также являются допустимыми формами. Пример: Msbuild.exe /? |
/nologo |
Отключает вывод заголовка и сообщения с указанием авторских прав при запуске. |
/version |
Отображает только сведения о версии. Допустима также форма /ver. |
@file |
Вставляет параметры командной строки из текстового файла. Каждый файл ответов задается отдельно. Дополнительные сведения см. в разделе Файлы ответов MSBuild. |
/noautoresponse |
Отменяет автоматическое включение файла MSBuild.rsp. Допустима также форма /noautorsp. |
/target:targets |
Вызывает построение указанных целей в данном проекте. Если целей несколько, их следует разделять точкой с запятой или запятой, либо же указывать каждую цель отдельно. Допустима также форма /t. Пример: /target:Resources;Compile |
/property:name=value |
Задает или переопределяет свойства уровня проекта, где name – имя свойства, а value – значение свойства. Если свойств несколько, их следует разделять точкой с запятой или запятой, либо же указывать каждое свойство отдельно. Допустима также форма /p. Пример: /property:WarningLevel=2;OutputDir=bin\Debug |
/logger:logger |
Задает средство ведения журнала, которое следует использовать для протоколирования событий от MSBuild. Если требуется использовать несколько средств ведения журнала, каждое из них необходимо указать отдельно. Для задания средства ведения журнала используется следующий синтаксис: [LoggerClass,]LoggerAssembly[;LoggerParameters] Для LoggerClass используется следующий синтаксис: [PartialOrFullNamespace.]LoggerClassName
Примечание.
Если в сборке имеется ровно одно средство ведения журнала, его класс указывать необязательно.
Для LoggerAssembly используется следующий синтаксис: {AssemblyName[,StrongName] | AssemblyFile} Параметры средства ведения журнала задавать необязательно. Они передаются в средство ведения журнала в точности так, как они введены. Пример: /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML |
/distributedlogger:<центральное средство ведение журнала>*<средство ведения журнала переадресации> |
Используйте это средство ведения журнала для протоколирования событий от MSBuild. Если требуется использовать несколько средств ведения журнала, каждое из них необходимо указать отдельно. (Краткая форма – /dl). Для задания средства ведения журнала используется следующий синтаксис: [<класс средства ведения журнала>,]<сборка средства ведения журнала>[;<параметры средства ведения журнала>] Для задания класса средства ведения журнала используется следующий синтаксис: [<частичное или полное пространство имен>.]<имя класса средства ведения журнала> Для задания сборки средства ведения журнала используется следующий синтаксис: {<имя сборки>[,<строгое имя>] | <файл сборки>} Параметры средства ведения журнала задавать необязательно. Они передаются в средство ведения журнала в точности так, как они введены. (Краткая форма – /l). Примеры: /dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral /dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll |
/consoleloggerparameters:parameters |
Задает параметры для передачи средству ведения журнала консоли. Допустима также форма /clp. Доступны следующие параметры.
|
/verbosity:level |
Предписывает отображать указанное количество информации в журнале построения. События отображаются отдельными средствами ведения журнала исходя из уровня детализации. Средство ведения журнала можно также настроить на игнорирование установленного уровня детализации. Доступны следующие уровни детализации: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic]. Допустима также форма /v. Пример: /verbosity:quiet |
/noconsolelogger |
Отключает заданное по умолчанию средство ведения журнала консоли и отключает протоколирование событий в консоли. Допустима также форма /noconlog. |
/validate:schema |
Инициирует проверку файла проекта, а затем построение проекта (при успешном прохождении проверки). Если аргумент schema отсутствует, проверка проекта происходит по заданной по умолчанию схеме. Если аргумент schema указан, проверка проекта происходит по указанной схеме. |
/maxcpucount:number |
Задает число рабочих процессов, участвующих в построении. Например, C:\Windows\WinFX\v3.5>msbuild.exe *.proj /maxcpucount:3. В этом примере программе MSBuild предписывается выполнить сборку с использованием трех процессов MSBuild.exe; таким образом, разрешается параллельное построение трех проектов. Допустима также форма /m. |
/ignoreprojectextensions:<расширения> |
Список расширений, которые следует игнорировать при выборе файла проекта для построения. Если расширений несколько, они разделяются точкой с запятой или запятой. (Краткая форма – /ignore.) Пример: /ignoreprojectextensions:.vcproj,.sln |
/fileLogger |
Задает вывод журнала построения в единый файл ("msbuild.log") в текущем каталоге. Местоположение файла и другие параметры для переключателя fileLogger можно задать, добавив переключатель "/fileLoggerParameters". (Краткая форма – /fl.) |
/distributedFileLogger |
Задает вывод журнала построения в несколько файлов – по одному файлу журнала на узел MSBuild. Исходным местоположением данных файлов является текущий каталог. По умолчанию файлам присваиваются имена вида "MSBuild<идентификатор узла>.log". Местоположение файлов и другие параметры для переключателя fileLogger можно задать, добавив переключатель "/fileLoggerParameters". Если имя файла журнала задается с помощью переключателя fileLoggerParameters, то для создания файла журнала каждого узла распределенное средство ведения журнала будет использовать fileName в качестве шаблона и присоединять к нему идентификатор узла. |
/fileloggerparameters:<параметры> |
Задает параметры для средства ведения журнала в файле (в т. ч. распределенного). (Краткая форма – /flp.) Доступны следующие параметры: LogFile– путь к файлу журнала, в который записывается журнал построения. Распределенное средство ведения журнала в файле использует этот путь в качестве префикса для имен своих журналов. Append– определяет метод записи журнала построения в файл журнала (добавление в конец или перезапись). Если этот переключатель установлен, журнал построения присоединяется в конец файла журнала. Если этот переключатель не установлен, содержимое файла журнала перезаписывается. По умолчанию выбрана перезапись. Verbosity– переопределяет заданный по умолчанию уровень детализации detailed. Encoding– задает кодировку файла, например UTF-8. Можно также использовать любые параметры средства ведения журнала консоли. Пример: /fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8. |
/toolsversion:version |
Задает версию набора инструментов, используемую для построения проекта. Эта команда позволяет построить проект, используя версию набора инструментов, отличную от той, которая задана в разделе Элемент Project (MSBuild). Пример: C:\Windows\WinFX\v3.5>msbuild.exe *.proj /ToolsVersion:3.5 /p:Configuration=Debug Допустимы следующие значения version: 2.0, 3.0 и 3.5. Дополнительные сведения о наборах инструментов см. в разделе Построение под конкретную платформу .NET Framework. |
/nodeReuse:<параметры> |
Включает или отключает повторное использование узлов MSBuild. Имеются следующие параметры: True– узлы сохраняются по завершении построения и используются повторно при последующих построениях. False– узлы не сохраняются по завершении построения. (Краткая форма: /nr.) Пример: /nr:true |
Заметки
Чтобы передать параметры заданному по умолчанию средству ведения журнала консоли, сначала отключите его переключателем /noconsolelogger, а затем укажите его, используя синтаксис /logger. Например, чтобы отобразить сводку производительности, обычно выводимую только при уровне детализации diagnostic, используйте следующую командную строку:
msbuild myproject.csproj /noconsolelogger /l:ConsoleLogger,Microsoft.Build.Engine.dll;performancesummary
Пример
В следующем примере производится построение цели rebuild проекта MyProject.proj.
MSBuild.exe MyProject.proj /t:rebuild
Программу MSBuild.exe можно использовать и для выполнения более сложного построения. Например, с ее помощью можно построить конкретные цели тех или иных проектов в решении. В следующем примере производится пересборка проекта NotInSolutionFolder и очистка проекта InSolutionFolder, находящегося в папке решения NewFolder.
msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean