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


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

В следующей таблице перечислены часто используемые свойства, определяемые в файлах проектов Visual Studio или включаемые в TARGETS-файлы, предоставляемые MSBuild.

Файлы проектов в Visual Studio (с расширением .csproj, .vbproj, vcxproj и др.) содержат XML-код MSBuild, который выполняется при сборке проекта с помощью интегрированной среды разработки. Обычно проекты импортируют один или несколько TARGETS-файлов для определения своего процесса сборки. Для получения дополнительной информации см. Файлы Targets в MSBuild.

Список общих свойств и параметров

Имя свойства или параметра

Описание

AdditionalLibPaths

Задает дополнительные папки, в которых компиляторы должны искать ссылочные сборки.

AddModules

Дает компилятору указание сделать всю информацию о типах из указанных файлов доступной компилируемому проекту. Это свойство эквивалентно переключателю /addModules компилятора.

ALToolPath

Путь к файлу AL.exe. Это свойство переопределяет текущую версию AL.exe, позволяя использовать другую версию.

ApplicationIcon

ICO-файл значка, передаваемый компилятору для внедрения в качестве значка Win32. Это свойство эквивалентно переключателю /win32icon компилятора.

ApplicationManifest

Задает путь к файлу, используемому для создания информации внешнего манифеста контроля учетных записей (UAC). Применяется только к проектам Visual Studio, нацеленным на Windows Vista.

В большинстве случаев манифест является внедренным. Однако при использовании COM-компонентов без регистрации или развертывания ClickOnce манифест может представлять собой внешний файл, устанавливаемый вместе со сборками приложения. Дополнительные сведения см. в описании свойства NoWin32Manifest в данном разделе.

AssemblyOriginatorKeyFile

Задает файл, используемый для подписания сборки (SNK или PFX), который передается Задача ResolveKeySource для создания ключа, фактически используемого для подписания сборки.

AssemblySearchPaths

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

AssemblyName

Имя окончательной выходной сборки после сборки проекта.

BaseAddress

Задает базовый адрес главной выходной сборки. Это свойство эквивалентно переключателю /baseaddress компилятора.

BaseOutputPath

Задает базовый путь для выходного файла. Если это свойство задано, MSBuild будет использовать OutputPath = $(BaseOutputPath)\$(Configuration)\. Пример синтаксиса:<BaseOutputPath>c:\xyz\bin\</BaseOutputPath>.

BaseIntermediateOutputPath

Папка верхнего уровня, в которой создаются все промежуточные выходные папки, зависящие от конфигурации. Значение по умолчанию — obj\. Примером является следующий код: <BaseIntermediateOutputPath>c:\xyz\obj\</BaseIntermediateOutputPath>.

BuildInParallel

Логическое значение, указывающее, выполняется ли сборка или удаление ссылок параллельно при использовании MSBuild в мультипроцессорном режиме. Значение по умолчанию — true; это означает, что сборка проектов будет выполняться параллельно, если система имеет несколько ядер или процессоров.

BuildProjectReferences

Логическое значение, указывающее, выполняется ли сборка ссылок с помощью MSBuild. Задайте значение false, если сборка проекта ведется в изолированной среде разработки (IDE) Visual Studio; в противном случае задайте значение true.

CleanFile

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

Это свойство указывает только имена файлов, для которых отсутствует информация о пути.

CodePage

Задает кодовую страницу, используемую для всех файлов исходного кода при компиляции. Это свойство эквивалентно переключателю /codepage компилятора.

CompilerResponseFile

Необязательный файл ответа, который можно передавать задачам компилятора.

Конфигурация

Конфигурация, для которой выполняется сборка: "Debug" или "Release".

CscToolPath

Путь к csc.exe — компилятору Visual C#.

CustomBeforeMicrosoftCommonTargets

Имя файла проекта или файла целей, автоматически импортируемого перед импортом общих целей.

DebugSymbols

Логическое значение, указывающее, создает ли сборка символы.

Задание /p:DebugSymbols=false в командной строке отключает создание файлов символов базы данных программы (PDB).

DefineConstants

Задает константы условной компиляции. Пары "символ-значение" разделяются точками с запятой и задаются с использованием следующего синтаксиса:

symbol1 = value1; symbol2 = value2

Это свойство эквивалентно переключателю /define компилятора.

DefineDebug

Логическое значение, указывающее, требуется ли определять константу DEBUG.

DefineTrace

Логическое значение, указывающее, требуется ли определять константу TRACE.

DebugType

Задает уровень создаваемой отладочной информации. Допустимые значения: "full", "pdbonly" и "none".

DelaySign

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

DisabledWarnings

Подавляет указанные предупреждения. Указывать необходимо только числовую часть идентификатора предупреждения. При указании нескольких предупреждений они отделяются друг от друга точкой с запятой. Этот параметр соответствует ключу /nowarn компилятора vbc.exe.

DisableFastUpToDateCheck

Логическое значение, применимое только к Visual Studio. Диспетчер сборок Visual Studio использует процесс FastUpToDateCheck, чтобы определить, требуется ли пересобрать проект для сохранения его актуальности. Это позволяет получить результат быстрее, чем при использовании MSBuild. Задание для свойства DisableFastUpToDateCheck значения true позволяет обойти диспетчер сборок Visual Studio и принудить его использовать MSBuild для определения актуальности проекта.

DocumentationFile

Имя файла, создаваемого в качестве файла XML-документации. Это имя включает только имя файла и не содержит информации о пути.

ErrorReport

Указывает, как задача компилятора должна сообщать о внутренних ошибках компилятора. Допустимые значения: "prompt", "send" и "none". Это свойство эквивалентно переключателю /errorreport компилятора.

ExcludeDeploymentUrl

Задача Задача GenerateDeploymentManifest добавляет в манифест развертывания тег deploymentProvider, если файл проекта включает какой-либо из следующих элементов:

  • UpdateUrl;

  • InstallUrl;

  • PublishUrl.

Однако с помощью параметра ИсключитьUrlАдресРазвертывания можно предотвратить добавление тега поставщикРазвертывания в манифест развертывания, даже если указан один из URL-адресов, заданных выше. Для этого добавьте в файл проекта следующее свойство:

<ExcludeDeploymentUrl>true</ExcludeDeploymentUrl>

Примечание

Параметр ИсключитьUrlАдресРазвертывания не предоставляется в интегрированной среде разработки Visual Studio и может быть задан только путем редактирования файла проекта вручную. Это свойство не влияет на публикацию в Visual Studio; то есть тег поставщикРазвертывания все равно будет добавлен к URL-адресу, заданному элементом UrlАдресПубликации.

FileAlignment

Задает выравнивание размеров выходного файла в байтах. Допустимые значения: 512, 1024, 2048, 4096, 8192. Это свойство эквивалентно переключателю /filealignment компилятора.

FrameworkPathOverride

Задает расположение библиотек mscorlib.dll и microsoft.visualbasic.dll. Этот параметр эквивалентен переключателю /sdkpath компилятора vbc.exe.

GenerateDocumentation

Логический параметр, указывающий, создается ли при сборке документация. Если он имеет значение true, в процессе сборки создается информация документации и помещается в XML-файл вместе с именем исполняемого файла или библиотеки, созданных задачей сборки.

IntermediateOutputPath

Полный путь к промежуточной выходной папке, производный от BaseIntermediateOutputPath, если путь не указан. Например, \obj\debug\. Если эти свойство переопределено, задание BaseIntermediateOutputPath не имеет силы.

KeyContainerName

Имя контейнера ключа строгого имени.

KeyOriginatorFile

Имя файла ключа строгого имени.

NoWin32Manifest

Определяет, создает ли компилятор манифест Win32 по умолчанию в выходной сборке. Используемое по умолчанию значение false означает, что манифест Win32 по умолчанию создается для всех приложений. Это свойство эквивалентно переключателю /nowin32manifest компилятора vbc.exe.

ModuleAssemblyName

Имя сборки, в которую должен быть включен скомпилированный модуль. Это свойство эквивалентно переключателю /moduleassemblyname компилятора.

NoLogo

Логическое значение, указывающее, требуется ли отключить эмблему компилятора. Это свойство эквивалентно переключателю /nologo компилятора.

NoStdLib

Логическое значение, указывающее, следует ли избегать ссылок на стандартную библиотеку (mscorlib.dll). Значение по умолчанию — false.

NoVBRuntimeReference

Логическое значение, указывающее, следует ли включить в проект в качестве ссылки среду выполнения Visual Basic (Microsoft.VisualBasic.dll).

NoWin32Manifest

Логическое значение, указывающее, внедряется ли в исполняемый файл приложения информация манифеста контроля учетных записей (UAC). Применяется только к проектам Visual Studio, нацеленным на Windows Vista. В проектах, развернутых с помощью ClickOnce и COM без регистрации, этот элемент игнорируется. Значение False (по умолчанию) указывает, что сведения о манифесте контроля учетных записей (UAC) внедряются в исполняемый файл приложения. Значение True указывает, что информация манифеста UAC не внедряется.

Это свойство применяется только к проектам Visual Studio, нацеленным на Windows Vista. В проектах, развертываемых с помощью ClickOnce и COM-компонентов без регистрации, это свойство игнорируется.

Добавлять свойство NoWin32Manifest следует только в том случае, если не требуется, чтобы Visual Studio внедряла какую-либо информацию манифеста в исполняемый файл приложения; этот процесс называется виртуализацией. Для использования виртуализации задайте <ApplicationManifest> вместе с <NoWin32Manifest> следующим образом:

  • Для проектов Visual Basic удалите узел <ApplicationManifest>. (В проектах Visual Basic <NoWin32Manifest> игнорируется, если существует узел <ApplicationManifest>.)

  • Для проектов Visual C# установите <ApplicationManifest> в значение False, а <NoWin32Manifest> в значение True. (В проектах Visual C# <ApplicationManifest> переопределяет <NoWin32Manifest>.)

Optimize

Логическое значение, которое, будучи установленным в true, разрешает оптимизации компилятора. Это свойство эквивалентно переключателю /optimize компилятора.

OptionCompare

Задает способ сравнения строк. Допустимые значения: "binary" и "text". Это свойство эквивалентно переключателю /optioncompare компилятора vbc.exe.

OptionExplicit

Логическое значение, которое, будучи установленным в true, требует явного объявления переменных в исходном коде. Это свойство эквивалентно переключателю /optionexplicit компилятора.

OptionInfer

Логическое значение, которое, будучи установленным в true, разрешает вывод типа переменных. Это свойство эквивалентно переключателю /optioninfer компилятора.

OptionStrict

Логическое значение, которое, будучи установленным в true, дает задаче сборки указание требовать строгой семантики для ограничения неявного преобразования типов. Это свойство эквивалентно переключателю /optionstrict компилятора vbc.exe.

OutputPath

Задает путь к выходному каталогу относительно каталога проекта, например "bin\Debug".

OutputType

Задает формат выходного файла. Этот параметр может принимать одно из следующих значений:

  • Library. Создание библиотеки кода. (Значение по умолчанию.)

  • Exe. Создание консольного приложения.

  • Module. Создание модуля.

  • Winexe. Создание программы для Windows.

Это свойство эквивалентно переключателю /target компилятора vbc.exe.

OverwriteReadOnlyFiles

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

PdbFile

Имя выдаваемого PDB-файла. Это свойство эквивалентно переключателю /pdb компилятора csc.exe.

Платформа

Операционная система, для которой выполняется сборка. Допустимые значения: "Любой ЦП", "x86" и "x64".

RemoveIntegerChecks

Логическое значение, указывающее, включены ли проверки ошибок переполнения для целых чисел. Значение по умолчанию — false. Это свойство эквивалентно переключателю /removeintchecks компилятора vbc.exe.

SGenUseProxyTypes

Логическое значение, указывающее, следует ли создавать прокси-типы с помощью SGen.exe.

Цель SGen использует это свойство для установки флага UseProxyTypes. По умолчанию это свойство имеет значение true, и пользовательского интерфейса для изменения этого значения не существует. Чтобы создать сборку сериализации для типов, не относящихся к веб-службам, добавьте это свойство в файл проекта и присвойте ему значение false, прежде чем импортировать Microsoft.Common.Targets или C#/VB.targets.

SGenToolPath

Необязательный путь, указывающий расположение, откуда можно получить SGen.exe при переопределении текущей версии SGen.exe.

StartupObject

Задает класс или модуль, содержащий метод Main или процедуру Sub Main. Это свойство эквивалентно переключателю /main компилятора.

ProcessorArchitecture

Архитектура процессора, используемая при разрешении ссылок на сборки. Допустимые значения: "msil", "x86", "amd64" и "ia64".

RootNamespace

Корневое пространство имен, используемое при присвоении имени внедренному ресурсу. Это пространство имен является частью имени манифеста внедренного ресурса.

Satellite_AlgorithmId

Идентификатор алгоритма хэширования AL.exe, используемого при создании вспомогательных сборок.

Satellite_BaseAddress

Базовый адрес, используемый при создании с помощью цели CreateSatelliteAssemblies вспомогательных сборок, относящихся к конкретному языку и региональным параметрам.

Satellite_CompanyName

Имя компании для передачи в AL.exe во время создания вспомогательных сборок.

Satellite_Configuration

Имя конфигурации для передачи в AL.exe во время создания вспомогательных сборок.

Satellite_Description

Текст описания для передачи в AL.exe во время создания вспомогательных сборок.

Satellite_EvidenceFile

Внедряет указанный файл во вспомогательную сборку с именем ресурса "Security.Evidence".

Satellite_FileVersion

Задает строковое значение для поля File Version во вспомогательной сборке.

Satellite_Flags

Задает значение поля Flags во вспомогательной сборке.

Satellite_GenerateFullPaths

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

Satellite_LinkResource

Связывает указанные файлы ресурсов со вспомогательной сборкой.

Satellite_MainEntryPoint

Задает полное имя (т. е. "класс.метод") метода, используемого в качестве точки входа при преобразовании модуля в исполняемый файл во время создания вспомогательной сборки.

Satellite_ProductName

Задает строковое значение для поля Product во вспомогательной сборке.

Satellite_ProductVersion

Задает строковое значение для поля ProductVersion во вспомогательной сборке.

Satellite_TargetType

Задает формат выходного файла вспомогательной сборки: "library", "exe" или "win". Значение по умолчанию — "library".

Satellite_Title

Задает строковое значение для поля "Title" во вспомогательной сборке.

Satellite_Trademark

Задает строковое значение для поля "Trademark" во вспомогательной сборке.

Satellite_Version

Задает информацию о версии для вспомогательной сборки.

Satellite_Win32Icon

Вставляет во вспомогательную сборку ICO-файл значка.

Satellite_Win32Resource

Вставляет во вспомогательную сборку ресурс Win32 (RES-файл).

SubsystemVersion

Задает минимальную версию подсистемы, которую может использовать созданный исполняемый файл. Это свойство эквивалентно переключателю /subsystemversion компилятора. Сведения о значении по умолчанию для этого свойства см. в разделе /subsystemversion (Visual Basic) или /subsystemversion (параметры компилятора C#).

TargetCompactFramework

Версия платформы .NET Compact Framework, необходимая для запуска собираемого приложения. Задание этого свойства позволяет ссылаться на определенные сборки платформы, которые иначе могут быть недоступны.

TargetFrameworkVersion

Версия .NET Framework, необходимая для запуска собираемого приложения. Задание этого свойства позволяет ссылаться на определенные сборки платформы, которые иначе могут быть недоступны.

TreatWarningsAsErrors

Логический параметр, который, будучи установлен в значение true, дает указание обрабатывать все предупреждения как ошибки. Этот параметр эквивалентен переключателю компилятора /nowarn.

UseHostCompilerIfAvailable

Логический параметр, который, будучи установлен в значение true, дает задаче сборки указание использовать внутрипроцессный объект компилятора, если он доступен. Этот параметр используется только Visual Studio.

Utf8Output

Логический параметр, который, будучи установлен в значение true, ведет журнал выходных данных компилятора в кодировке UTF-8. Этот параметр эквивалентен переключателю компилятора /utf8Output.

VbcToolPath

Необязательный путь, указывающий другое расположение vbc.exe при переопределении текущей версии vbc.exe.

VbcVerbosity

Задает уровень детализации выходных данных компилятора Visual Basic. Допустимые значения: "Quiet", "Normal" (значение по умолчанию) и "Verbose".

VisualStudioVersion

Задает версию Visual Studio, для выполнения в которой считается предназначенным этой проект. Если это свойство не задано, MSBuild присваивает ему разумное значение по умолчанию.

Это свойство используется в нескольких типах проектов для задания набора целей, используемых для сборки. Если ToolsVersion для проекта имеет значение 4.0 или выше, VisualStudioVersion используется для задания того, какое подмножество инструментов следует использовать. Для получения дополнительной информации см. Набор инструментов MSBuild (ToolsVersion).

WarningsAsErrors

Задает список предупреждений, которые следует обрабатывать как ошибки. Этот параметр эквивалентен переключателю компилятора /warnaserror.

WarningsNotAsErrors

Задает список предупреждений, которые не следует обрабатывать как ошибки. Этот параметр эквивалентен переключателю компилятора /warnaserror.

Win32Manifest

Имя файла манифеста, который необходимо внедрить в окончательную сборку. Этот параметр эквивалентен переключателю компилятора /win32Manifest.

Win32Resource

Имя файла ресурса Win32, который необходимо внедрить в окончательную сборку. Этот параметр эквивалентен переключателю компилятора /win32resource.

См. также

Ссылки

Общие элементы проектов MSBuild