Общие элементы проекта 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 | Необязательная строка. Пространство имен, в котором любой генератор файлов, работающий в этом элементе, должен создать код. |
Связь | Необязательная строка. Нотационный путь, отображаемый, если файл физически расположен вне влияния проекта. |
Видимый | Необязательный логический элемент. Указывает, следует ли отображать файл в обозревателе решений в 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 в качестве заполнителя для пустой папки. Когда папка заполняется, она заменяется другим элементом.