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

В MSBuild элемент представляет собой именованную ссылку на один или несколько файлов. Элементы содержат метаданные, такие как имена файлов, пути и номера версий. Все типы проектов в Visual Studio имеют по несколько общих элементов. Эти элементы определены в файле Microsoft.Build.CommonTypes.xsd.

В этой статье перечислены все основные элементы проекта.

Справочник

Представляет ссылку на сборку (управляемую) в проекте.

Имя метаданных элемента Описание
УказаниеПути Необязательная строка. Относительный или абсолютный путь к сборке.
name Необязательная строка. Отображаемое имя сборки, например "System.Windows.Forms".
FusionИмя Необязательная строка. Задает простое или строгое fusion-имя элемента.

Если этот атрибут присутствует, экономится время, поскольку для получения fusion-имени не нужно открывать файл сборки.
УказаннаяВерсия Необязательный логический атрибут. Указывает, дается ли ссылка только на версию в fusion-имени.
Псевдонимы Необязательная строка. Любые псевдонимы для ссылки.
Private Необязательный логический атрибут. Указывает, будет ли ссылка скопирована в папку выходных данных. Этот атрибут соответствует свойству Копировать локально ссылки, находящейся в интегрированной среде разработки Visual Studio.

СсылкаНаCOM

Представляет ссылку на COM-компонент (неуправляемый) в проекте. Этот элемент доступен только для проектов .NET.

Имя метаданных элемента Описание
name Необязательная строка. Отображаемое имя компонента.
Guid Обязательная строка. Идентификатор GUID для компонента в формате {12345678-1234-1234-1234-1234567891234}.
VersionMajor Обязательная строка. Основная часть номера версии компонента. Например "5", если полный номер версии — "5.46".
VersionMinor Обязательная строка. Вспомогательная часть номера версии компонента. Например "46", если полный номер версии — "5.46".
LCID Необязательная строка. Код языка для компонента.
ИнструментОбертки Необязательная строка. Имя инструмента обертки, используемое в компоненте, например "tlbimp".
Изолированные Необязательный логический атрибут. Указывает, является ли компонент компонентом, для которого не требуется регистрация.

СсылкаНаCOMФайл

Представляет список библиотек типов, которые передаются параметру TypeLibFiles целевого объекта ResolveComReference. Этот элемент доступен только для проектов .NET.

Имя метаданных элемента Описание
ИнструментОбертки Необязательная строка. Имя инструмента обертки, используемое в компоненте, например "tlbimp".

СобственнаяСсылка

Представляет машинный файл манифеста или ссылку на такой файл.

Имя метаданных элемента Описание
name Обязательная строка. Базовое имя файла манифеста.
УказаниеПути Обязательная строка. Относительный путь к файлу манифеста.

СсылкаНаПроект

Представляет ссылку на другой проект. Элементы ProjectReference преобразуются в элементы Reference целевым объектом ResolveProjectReferences. Поэтому любые допустимые метаданные в элементе Reference могут быть допустимыми в ProjectReference, если они не были перезаписаны в процессе преобразования.

Имя метаданных элемента Описание
name Необязательная строка. Отображаемое имя ссылки.
GlobalPropertiesToRemove Необязательный string[]. Имена свойств, которые необходимо удалить при сборке проекта, на который указывает ссылка, например RuntimeIdentifier;PackOnBuild. Значение по умолчанию: empty.
Проект Необязательная строка. Идентификатор GUID для ссылки в формате {12345678-1234-1234-1234-1234567891234}.
OutputItemType Необязательная строка. Тип элемента, в который выводятся выходные данные целевого объекта. Значение по умолчанию — пусто. Если для параметра Reference metadata задано значение true (по умолчанию), целевые выходные данные будут ссылками для компилятора.
ReferenceOutputAssembly Необязательный логический атрибут. Если задано значение false, в ссылку на проект не включаются его выходные данные. Но по-прежнему обеспечивается создание других проектов перед этим проектом. По умолчанию — true.
SetConfiguration Необязательная строка. Задает глобальное свойство Configuration для указанного проекта, например Configuration=Release.
SetPlatform Необязательная строка. Задает глобальное свойство Platform для указанного проекта, например Platform=AnyCPU.
SetTargetFramework Необязательная строка. Задает глобальное свойство TargetFramework для указанного проекта, например TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Необязательный логический атрибут. Если значение равно true, создает проект, на который указывает ссылка, без согласования наиболее совместимого значения TargetFramework. По умолчанию — false.
Цели Необязательный string[]. Разделенный точками с запятой список целевых объектов в проектах, на которые указывают ссылки, которые необходимо построить. По умолчанию используется значение $(ProjectReferenceBuildTargets), по умолчанию пустое и указывающее целевые объекты по умолчанию.

Компилятор

Представляет исходные файлы для компилятора.

Имя метаданных элемента Описание
ЗависимостьОт Необязательная строка. Указывает файл, от которого зависит этот файл, для правильной компиляции.
АвтоСоздание Необязательный логический атрибут. Указывает, был ли файл проекта создан интегрированной средой разработки (IDE) Visual Studio.
Ссылка Необязательная строка. Отображаемый путь к обозначениям, если файл физически расположен вне зоны влияния файла проекта.
Видимый Необязательный логический атрибут. Указывает, следует ли отображать файл в обозревателе решений в Visual Studio.
КопироватьВВыходнойКаталог Необязательная строка. Определяет, следует ли копировать файл в выходной каталог. Доступны следующие значения:

1. Никогда
2. Всегда
3. СохранятьНовейшие

ВнедренныйРесурс

Представляет ресурсы для внедрения в созданную сборку.

Имя метаданных элемента Описание
ЗависимостьОт Необязательная строка. Указывает файл, от которого зависит этот файл для правильной компиляции.
Generator Обязательная строка. Имя любого генератора файлов, который запущен на этом элементе.
ПоследниеВыходныеДанныеГенератора Обязательная строка. Имя файла, который был создан любым генератором файлов, запущенным на этом элементе.
НастраиваемоеПространствоИменСредства Обязательная строка. Пространство имен, в котором любой генератор файлов, запущенный на этом элементе, должен создать код.
Ссылка Необязательная строка. Путь к обозначениям отображается в том случае, если файл физически расположен вне зоны влияния проекта.
Видимый Необязательный логический атрибут. Указывает, следует ли отображать файл в обозревателе решений в Visual Studio.
КопироватьВВыходнойКаталог Необязательная строка. Определяет, следует ли копировать файл в выходной каталог. Доступны следующие значения:

1. Никогда
2. Всегда
3. СохранятьНовейшие
ЛогическоеИмя Обязательная строка. Логическое имя внедренного ресурса.

Content

Представляет файлы, которые не компилируются в проект, но могут быть внедрены или опубликованы вместе с ним.

Имя метаданных элемента Описание
ЗависимостьОт Необязательная строка. Указывает файл, от которого зависит этот файл, для правильной компиляции.
Generator Обязательная строка. Имя любого генератора файлов, который запущен на этом элементе.
ПоследниеВыходныеДанныеГенератора Обязательная строка. Имя файла, который был создан любым генератором файлов, запущенным на этом элементе.
НастраиваемоеПространствоИменСредства Обязательная строка. Пространство имен, в котором любой генератор файлов, запущенный на этом элементе, должен создать код.
Ссылка Необязательная строка. Путь к обозначениям, который отображается в том случае, если файл физически расположен вне зоны влияния проекта.
СостояниеПубликации Обязательная строка. Состояние публикации содержимого либо:

— Default
— Included
— Excluded
— DataFile
— Prerequisite
ЯвляетсяСборкой Необязательный логический атрибут. Указывает, является ли файл сборкой.
Видимый Необязательный логический атрибут. Указывает, следует ли отображать файл в обозревателе решений в Visual Studio.
КопироватьВВыходнойКаталог Необязательная строка. Определяет, следует ли копировать файл в выходной каталог. Доступны следующие значения:

1. Никогда
2. Всегда
3. СохранятьНовейшие

Отсутствуют

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

Имя метаданных элемента Описание
ЗависимостьОт Необязательная строка. Указывает файл, от которого зависит этот файл, для правильной компиляции.
Generator Обязательная строка. Имя любого генератора файлов, который запущен на этом элементе.
ПоследниеВыходныеДанныеГенератора Обязательная строка. Имя файла, который был создан любым генератором файлов, запущенным на этом элементе.
НастраиваемоеПространствоИменСредства Обязательная строка. Пространство имен, в котором любой генератор файлов, запущенный на этом элементе, должен создать код.
Ссылка Необязательная строка. Путь к обозначениям, который отображается в том случае, если файл физически расположен вне зоны влияния проекта.
Видимый Необязательный логический атрибут. Указывает, следует ли отображать файл в обозревателе решений в Visual Studio.
КопироватьВВыходнойКаталог Необязательная строка. Определяет, следует ли копировать файл в выходной каталог. Доступны следующие значения:

1. Никогда
2. Всегда
3. СохранятьНовейшие

AssemblyMetadata

Представляет атрибуты сборки, создаваемые как [AssemblyMetadata(key, value)].

Имя метаданных элемента Описание
Включение Становится первым параметром (ключом) в конструкторе атрибута AssemblyMetadataAttribute.
Значение Обязательная строка. Становится вторым параметром (значением) в конструкторе атрибута AssemblyMetadataAttribute.

Примечание

Этот элемент применяется к проектам, использующим пакет SDK для .NET 5 (и .NET Core) и более поздних версий.

InternalsVisibleTo

Указывает сборки для выдачи в виде атрибутов сборок [InternalsVisibleTo(..)].

Имя метаданных элемента Описание
Включение Имя сборки.
Клавиши Необязательная строка. Открытый ключ сборки.

Примечание

Этот элемент применяется к проектам, использующим пакет SDK для .NET 5 (и .NET Core) и более поздних версий.

БазовыйМанифестПриложения

Представляет базовый манифест приложения для сборки и содержит сведения о безопасности развертывания ClickOnce.

ИмпортАнализаКода

Представляет проект FxCop для импорта.

Импорт

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

См. также