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


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

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

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

Reference

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

Имя метаданных элемента Описание
HintPath Необязательная строка. Относительный или абсолютный путь сборки.
Имя Необязательная строка. Отображаемое имя сборки, например System.Windows.Forms.
FusionName Необязательная строка. Указывает простое или строгое имя слияния для элемента.

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

COMReference

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

Имя метаданных элемента Описание
Имя Необязательная строка. Отображаемое имя компонента.
Guid Требуемая строка. GUID компонента в форме {12345678-1234-1234-1234-123456781234}.
VersionMajor Требуемая строка. Основная часть номера версии компонента. Например, "5", если полный номер версии равен "5.46".
VersionMinor Требуемая строка. Дополнительная часть номера версии компонента. Например, "46", если полный номер версии равен "5.46".
EmbedInteropTypes Необязательный логический элемент. Если значение true, внедрение типов взаимодействия из этой ссылки непосредственно в сборку, а не создание библиотеки DLL взаимодействия.
Lcid Необязательная строка. LocaleID для компонента.
Оболочка Необязательная строка. Имя средства-оболочки, используемого в компоненте. Значения:

1. первичный
2. tlbimp
3. primaryortlbimp
4. aximp
Изолированный Необязательный логический элемент. Указывает, является ли компонент компонентом без регрессии.

COMFileReference

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

Имя метаданных элемента Описание
EmbedInteropTypes Необязательный логический элемент. Если значение true, внедрение типов взаимодействия из этой ссылки непосредственно в сборку, а не создание библиотеки DLL взаимодействия.
Оболочка Необязательная строка. Имя средства-оболочки, используемого в компоненте. Значения:

1. первичный
2. tlbimp
3. primaryortlbimp
4. aximp

NativeReference

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

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

ProjectReference

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

Имя метаданных элемента Описание
Имя Необязательная строка. Отображаемое имя ссылки.
GlobalPropertiesToRemove Необязательный string[]. Имена свойств, которые необходимо удалить при создании ссылаемого проекта, например RuntimeIdentifier;PackOnBuild. Значение по умолчанию пусто.
Проект Необязательная строка. GUID для ссылки в форме {12345678-1234-1234-1234-123456781234}.
OutputItemType Необязательная строка. Тип элемента для вывода целевых выходных данных в. Значение по умолчанию пусто. Если для метаданных ссылки задано значение true (по умолчанию), целевые выходные данные становятся ссылками для компилятора.
ReferenceOutputAssembly Необязательный логический элемент. Если задано значение false, не включает выходные данные указанного проекта в качестве ссылки этого проекта, но все равно гарантирует, что другой проект выполняет сборку перед этим проектом. По умолчанию используется true.
Частный Необязательный логический элемент. Указывает, следует ли скопировать ссылку в выходную папку. Этот атрибут соответствует свойству Copy Local ссылки, которая находится в интегрированной среде разработки Visual Studio.
SetConfiguration Необязательная строка. Задает Configuration глобального свойства для указанного проекта, например Configuration=Release.
SetPlatform Необязательная строка. Задает Platform глобального свойства для указанного проекта, например Platform=AnyCPU.
SetTargetFramework Необязательная строка. Задает TargetFramework глобального свойства для указанного проекта, например TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Необязательный логический элемент. Если true, создает указанный проект без согласования наиболее совместимого значения TargetFramework. По умолчанию используется false.
Цели Необязательный string[]. Разделенный точкой с запятой список целевых объектов в указанных проектах, которые должны быть созданы. По умолчанию используется значение $(ProjectReferenceBuildTargets), которое по умолчанию пусто, указывающее целевые объекты по умолчанию. При создании в Visual Studio (в отличие от MSBuild.exe или dotnet build), указывая, что это не мешает Visual Studio создавать целевые объекты по умолчанию для указанного проекта.

Заметка

Существует разница между работой ссылок на проекты между .NET Framework и .NET Core (включая .NET 5 и более поздние версии). В проектах .NET Framework ссылки на проекты не являются транзитивными. То есть, если Project1 ссылается на Project2 и Project2 ссылается на Project3, вы не можете код для Project3 из Project1. Однако в .NET Core (включая .NET 5 и более поздних версий), ссылки на проекты транзитивными. Вы можете код для Project3 в Project1.

Компилировать

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

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

1. Никогда не
2. Всегда
3. СохранениеNewest
4. IfDifferent

EmbeddedResource

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

Имя метаданных элемента Описание
Культура Необязательная строка. Задает язык и региональные параметры файла ресурса. Если задано, процесс сборки не выводит язык и региональные параметры на основе расширения файла (который зависит от языков и региональных параметров, доступных для .NET/OS на компьютере, где размещена сборка). Настоятельно рекомендуется задать Culture={culture identifier} или WithCulture=false метаданные.
WithCulture Необязательный логическое значение. Указывает, что файл является нейтральным языком и языком и региональными параметрами, AssignCulture задача должна быть пропущена. Настоятельно рекомендуется задать Culture={culture identifier} или WithCulture=false метаданные.
Зависимыйupon Необязательная строка. Указывает файл, который этот файл зависит от правильной компиляции
Генератор Необязательная строка. Имя любого генератора файлов, запущенного в этом элементе.
LastGenOutput Необязательная строка. Имя файла, созданного любым генератором файлов, запущенным на этом элементе.
CustomToolNamespace Необязательная строка. Пространство имен, в котором любой генератор файлов, работающий в этом элементе, должен создать код.
Связь Необязательная строка. Нотационный путь отображается, если файл физически расположен вне влияния проекта.
Видимый Необязательный логический элемент. Указывает, следует ли отображать файл в обозревателе решений в Visual Studio.
CopyToOutputDirectory Необязательная строка. Определяет, следует ли копировать файл в выходной каталог. Значения:

1. Никогда не
2. Всегда
3. СохранениеNewest
4. IfDifferent
Логическое имя Требуемая строка. Логическое имя внедренного ресурса.

Содержание

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

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

-По умолчанию
-Включенный
-Исключены
— DataFile
-Предпосылка
IsAssembly Необязательный логический элемент. Указывает, является ли файл сборкой.
Видимый Необязательный логический элемент. Указывает, следует ли отображать файл в обозревателе решений в Visual Studio.
CopyToOutputDirectory Необязательная строка. Определяет, следует ли копировать файл в выходной каталог. Значения:

1. Никогда не
2. Всегда
3. СохранениеNewest
4. IfDifferent
TargetPath Необязательная строка. Выходной путь (относительно каталога выходных данных конфигурации и (или) конкретной платформы) элемента, включая имя файла. Это учитывает метаданные Link, если они указаны. Если TargetPath не предоставлен, он вычисляется во время процесса сборки. См. AssignTargetPath.

Никакой

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

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

1. Никогда не
2. Всегда
3. СохранениеNewest
4. IfDifferent

Метаданные AssemblyMetadata

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

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

Заметка

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

InternalsVisibleTo

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

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

Заметка

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

BaseApplicationManifest

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

CodeAnalysisImport

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

Импорт

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

Папка

Этот элемент используется только Visual Studio в качестве заполнителя для пустой папки. Когда папка заполняется, она заменяется другим элементом.

См. также