ResolveAssemblyReference - задача

Определяет все сборки, которые зависят от указанных сборок, включая зависимости второго и n-го порядка.

Параметры

В следующей таблице приводятся параметры задачи ResolveAssemblyReference.

Параметр Описание
AllowedAssemblyExtensions Необязательный параметр String[].

Расширения имен файлов сборки для использования при разрешении ссылок. Расширения имен файлов по умолчанию: .exe и .dll.
AllowedRelatedFileExtensions Необязательный параметр String[].

Расширения имен файлов для поиска файлов, связанных друг с другом. Расширения по умолчанию: .pdb и .xml.
AppConfigFile Необязательный параметр String.

Указывает файл app.config, из которого анализируются и извлекаются сопоставления bindingRedirect. Если этот параметр указан, параметр AutoUnify должен иметь значение false.
Assemblies Необязательный параметр ITaskItem[].

Указывает элементы, для которых следует идентифицировать полные пути и зависимости. Имена этих элементов могут быть как простыми, например "System", так и строгими, например "System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".

Элементы, переданные в этот параметр, могут дополнительно иметь метаданные следующего элемента:

- Private: значение Boolean . Если значение true, элемент копируется локально. Значение по умолчанию — true.
- HintPath: значение String . Указывает путь и имя файла для использования в качестве ссылки. Это значение метаданных используется, если в параметре SearchPaths указано значение {HintPathFromItem}. Значение по умолчанию — пустая строка.
- SpecificVersion: значение Boolean . Если значение true, имя, указанное в атрибуте Include , должно в точности совпадать. Если значение false, подойдет любая сборка с таким же простым именем. Если значение SpecificVersion не указано, задача проверяет значение в атрибуте Include элемента. Если атрибут является простым именем, он ведет себя, как если бы параметр SpecificVersion имел значение false. Если атрибут является строгим именем, он ведет себя, как если бы параметр SpecificVersion имел значение true.
При использовании типа элемента ссылки атрибут Include должен быть полным фьюжн-именем сборки, которую необходимо разрешить. Сборка разрешается, только если фьюжн точно совпадает с атрибутом Include .
Если проект предназначен для определенной версии .NET Framework и ссылается на сборку, скомпилированную для более поздней версии .NET Framework, ссылка разрешается, только если для SpecificVersion задано значение true.
Если проект предназначен для определенного профиля и ссылается на сборку, которой нет в профиле, ссылка разрешается, только если для SpecificVersion задано значение true.
- ExecutableExtension: значение String . Если параметр присутствует, у разрешенной сборки должно быть это расширение. Если параметр отсутствует, сначала рассматривается библиотека .dll, а затем файл .exe для каждого проверенного каталога.
- SubType: значение String . Только элементы с пустыми метаданными SubType будут разрешены в путях полной сборки. Элементы с непустыми метаданными SubType пропускаются.
- AssemblyFolderKey: значение String . Эти метаданные поддерживаются для обратной совместимости. Они указывают пользовательский раздел реестра, такой как hklm\<VendorFolder>, который Assemblies следует использовать для разрешения ссылок на сборки.
AssemblyFiles Необязательный параметр ITaskItem[].

Указывает список полных сборок, для которых необходимо найти зависимости.

Элементы, переданные в этот параметр, могут дополнительно иметь метаданные следующего элемента:

- Private: необязательное значение Boolean . Если задано значение true, элемент копируется локально.
- FusionName: необязательные метаданные String . Указывает простое или строгое имя для этого элемента. Если этот атрибут присутствует, он может сэкономить время, так как для получения имени не нужно открывать файл сборки.
AssemblyInformationCacheOutputPath Необязательный параметр String.

Если принимает ненулевое значение, сериализует не учитывающие компьютер сведения о входных данных AssemblyFiles в именованный файл. Это переопределяет обычный кэш. Используйте этот параметр, только если выполняете сборку пакета SDK с большим количеством ссылок и планируете отправлять кэш клиентам.
AssemblyInformationCachePaths Необязательный параметр ITaskItem.

Если принимает ненулевое значение, использует набор кэша в качестве входных данных, если MSBuild не удается найти обычный кэш в папке obj. Обычно предоставляется в пакете SDK для повышения производительности первой сборки.
AutoUnify Необязательный параметр Boolean.

Этот параметр используется для создания сборок, таких как библиотеки DLL, которые не могут содержать обычный файл App.Config.

Если задано значение true, полученная схема зависимостей автоматически обрабатывается, как если бы файл App.Config был передан в параметр AppConfigFile. Этот виртуальный файл App.Config содержит запись bindingRedirect для каждого конфликтующего набора сборок таким образом, что выбирается сборка самой последней версии. Вследствие этого предупреждение о конфликтующих сборках никогда не появляется, так как каждый конфликт разрешается.

Если задано значение true, каждое отдельное повторное сопоставление вызывает комментарий с высоким приоритетом, в котором показаны старая и новая версии и то, что параметр AutoUnify имел значение true.

Если задано значение true, параметр AppConfigFile должен быть пустым.

Если задано значение false, повторное сопоставление версий сборки не происходит автоматически. При наличии двух версий сборки возникает предупреждение.

Если задано значение false, каждый отдельный конфликт между двумя версиями одной сборки приводит к комментарию с высоким приоритетом. После этих комментариев следует одно предупреждение. Предупреждение содержит уникальный код ошибки и следующий текст: «Обнаружены конфликты между различными версиями ссылочной и зависимой сборок».

Значение по умолчанию — false.
CandidateAssemblyFiles Необязательный параметр String[].

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

Сборки в этом списке учитываются, если параметр SearchPaths содержит {CandidateAssemblyFiles} в качестве одного из рассматриваемых путей.
CopyLocalDependenciesWhenParentReferenceInGac Необязательный параметр Boolean.

Если задано значение true, для определения того, следует ли копировать зависимость локально, проверяется, заданы ли в родительской ссылке в файле проекта частные метаданные. Если значение задано, частное значение используется в качестве зависимости.

Если метаданные не заданы, зависимость проходит те же проверки, что и родительская ссылка. Одна из этих проверок выполняется, чтобы узнать, находится ли ссылка в глобальном кэше сборок. Если ссылка находится в глобальном кэше сборок, она не копируется локально, так как предполагается, что она находится в глобальном кэше сборок на целевом компьютере. Это применяется только к конкретной ссылке, а не к ее зависимостям.

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

Если задано значение false, проверяется присутствие ссылок на файл проекта в глобальном кэше сборок и они копируются локально.

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

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

Независимо от того, имеет ли этот параметр значение true или false, при наличии нескольких родительских ссылок, не находящихся в глобальном кэше сборок, все они копируются локально.
CopyLocalFiles Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Возвращает каждый файл в параметрах ResolvedFiles, ResolvedDependencyFiles, RelatedFiles, SatelliteFilesи ScatterFiles , который содержит метаданные элемента CopyLocal со значением true.
DependsOnNETStandard Выходной параметр Boolean.

Указывает, зависит ли любая из разрешенных первичных ссылок от .NET Standard.
DependsOnSystemRuntime Выходной параметр Boolean.

Указывает, зависит ли любая из разрешенных первичных ссылок от System.Runtime.
DoNotCopyLocalIfInGac Необязательный параметр Boolean.

Включает устаревший режим для определения CopyLocal. Если значение равно true, сборки, на которые есть ссылки, не будут копироваться локально при условии их наличия в глобальном кэше сборок. Если значение равно false, сборки будут копироваться локально при условии, что они не были найдены только в глобальном кэше сборок. Значение по умолчанию — false.
FilesWritten Необязательный выходной параметр ITaskItem[] .

Содержит элементы, записанные на диск.
FindDependencies Необязательный параметр Boolean.

Если значение true, выполняется поиск зависимостей. В противном случае выполняется поиск только первичных ссылок. Значение по умолчанию — true.
FindDependenciesOfExternallyResolvedReferences Необязательный параметр Boolean.

Принудительный обход зависимостей, даже если в метаданных ссылки есть пометка ExternallyResolved=true.
FindRelatedFiles Необязательный параметр Boolean.

Если значение true, выполняется поиск связанных файлов, таких как файлы .pdb и файлы.xml. Значение по умолчанию — true.
FindSatellites Необязательный параметр Boolean.

Если значение true, выполняется поиск вспомогательных сборок. Значение по умолчанию — true..
FindSerializationAssemblies Необязательный параметр Boolean.

Если значение true, задача ищет сборки сериализации. Значение по умолчанию — true.
FullFrameworkAssemblyTables Необязательный параметр ITaskItem[].

Указывает элементы, которые содержат метаданные FrameworkDirectory для связи списка redist с определенным каталогом платформы. Если связь не установлена, регистрируется ошибка. Логика разрешения ссылки на сборку (RAR) использует каталог целевой платформы, если значение FrameworkDirectory не задано.
FullFrameworkFolders Необязательный параметр System.String[].

Указывает папки, содержащие каталог RedistList. Этот каталог представляет полную платформу для заданного клиентского профиля, например %programfiles%\reference assemblies\microsoft\framework\v4.0.
FullTargetFrameworkSubsetNames Необязательный параметр String[].

Содержит список имен подсети целевой платформы. Если имя подсети в списке совпадает с именем в свойстве имени TargetFrameworkSubset , система исключает эту подсеть целевой платформы во время сборки.
IgnoreDefaultInstalledAssemblyTables Необязательный параметр Boolean.

Если значение true, задача ищет и использует дополнительные установленные таблицы сборок (или "списки Redist"), которые находятся в каталоге \RedistList в разделе TargetFrameworkDirectories. Значение по умолчанию — false..
IgnoreDefaultInstalledAssemblySubsetTables Необязательный параметр Boolean.

Если значение true, задача ищет и использует дополнительные установленные таблицы подмножеств сборки (или "списки подмножеств"), которые находятся в каталоге \SubsetList в разделе TargetFrameworkDirectories. Значение по умолчанию — false..
IgnoreTargetFrameworkAttributeVersionMismatch Необязательный параметр Boolean.

При значении true задача будет разрешать ссылки на сборки, предназначенные для более поздних версий .NET Framework, чем у текущего проекта. По умолчанию используется значение false, при котором такие ссылки пропускаются.
IgnoreVersionForFrameworkReferences Необязательный параметр Boolean.

Если первичная ссылка является сборкой платформы, сведения о ее версии игнорируются и выполняется фактическое разрешение сборки платформы из текущей целевой платформы.
InstalledAssemblySubsetTables Необязательный параметр ITaskItem[].

Содержит список XML-файлов, которые указывают сборки, ожидающиеся в целевой подсети.

В качестве альтернативного варианта элементы в этом списке могут указать метаданные FrameworkDirectory для связи InstalledAssemblySubsetTable

с каталогом определенной платформы.

Если существует только один элемент TargetFrameworkDirectories , любые элементы в этом списке, у которых не хватает метаданных FrameworkDirectory, обрабатываются, как если бы для них было задано уникальное значение, передаваемое в TargetFrameworkDirectories.
InstalledAssemblyTables Необязательный параметр String.

Содержит список XML-файлов, указывающих сборки, которые должны быть установлены на целевом компьютере.

Если задано значение InstalledAssemblyTables , более ранние версии сборок в списке объединяются в более новые версии, перечисленные в XML-файле. Кроме того, сборки с параметром InGAC='true' считаются необходимыми компонентами и имеют значение CopyLocal='false', если только это явно не переопределено.

В качестве альтернативного варианта элементы в этом списке могут указывать метаданные FrameworkDirectory для связи InstalledAssemblyTable с каталогом определенной платформы. Однако этот параметр пропускается, если имя Redist не начинается с

Microsoft-Windows-CLRCoreComp.

Если существует только один элемент TargetFrameworkDirectories , любые элементы в этом списке, у которых не хватает метаданных FrameworkDirectory, обрабатываются, как если бы для них было задано уникальное значение, передаваемое

делегата TargetFrameworkDirectories.
LatestTargetFrameworkDirectories Необязательный параметр String[].

Указывает список каталогов, которые содержат списки redist для новейшей платформы, которая может выступать в качестве целевой на компьютере. Если это значение не задано, то используется платформа наибольшей версии, установленная на компьютере для указанного идентификатора целевой платформы.
OutputUnresolvedAssemblyConflicts Необязательный параметр Boolean.

Если принимает значение true, включает все неразрешенные конфликты сборки с диагностическим кодом MSB3277 в выходные данные UnresolveAssemblyConflicts.
ProfileName Необязательный параметр String.

Указывает имя целевого профиля платформы. Например, клиент, Интернет или сеть. Относится только к профилям .NET Framework.
RelatedFiles Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Содержит связанные файлы, такие как XML и .pdb файлы с таким же базовым именем, что и у ссылки.

Файлы, перечисленные в этом параметре, могут содержать следующие метаданные элемента:

- Primary: значение Boolean . Если значение true, элемент файла был передан в массив с использованием параметра Assemblies . Значение по умолчанию: false.
- CopyLocal: значение Boolean . Указывает, следует ли копировать указанную ссылку в выходной каталог.
ResolvedDependencyFiles Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Содержит пути n-го порядка для зависимостей. Этот параметр не включает первичные ссылки первого порядка, которые содержатся в параметре ResolvedFiles .

Элементы в этом параметре могут содержать следующие метаданные элемента:

- CopyLocal: значение Boolean . Указывает, следует ли копировать указанную ссылку в выходной каталог.
- FusionName: значение String . Указывает имя для этой зависимости.
- ResolvedFrom: значение String . Указывает путь поиска литерала, из которого был разрешен этот файл.
ResolvedFiles Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Содержит список всех первичных ссылок, разрешенных в полные пути.

Элементы в этом параметре могут содержать следующие метаданные элемента:

- CopyLocal: значение Boolean . Указывает, следует ли копировать указанную ссылку в выходной каталог.
- FusionName: значение String . Указывает имя для этой зависимости.
- ResolvedFrom: значение String . Указывает путь поиска литерала, из которого был разрешен этот файл.
ResolvedSDKReferences Необязательный параметр ITaskItem[].

Список разрешенных ссылок SDK, которые содержат имя пакета SDK, его расположение и целевую конфигурацию. Эти расположения будут выполняться только в том случае, если ссылка содержит метаданные SDKName, подключенные к нему.
SatelliteFiles Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Указывает все найденные вспомогательные файлы. Значение CopyLocal=true, если ссылка или зависимость, вызвавшая этот элемент, имеет значение CopyLocal=true.

Элементы в этом параметре могут содержать следующие метаданные элемента:

- CopyLocal: значение Boolean . Указывает, следует ли копировать указанную ссылку в выходной каталог. Это значение равно true , если ссылка или зависимость, вызвавшая этот элемент, имеет значение CopyLocal , равное true.
- DestinationSubDirectory: значение String . Указывает относительный конечный каталог, в который копируется этот элемент.
ScatterFiles Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Содержит точечные файлы, связанные с одной из заданных сборок.

Элементы в этом параметре могут содержать следующие метаданные элемента:

- CopyLocal: значение Boolean . Указывает, следует ли копировать указанную ссылку в выходной каталог.
SearchPaths Обязательный параметр String[] .

Указывает каталоги или специальные расположения, в которых выполняется поиск на диске файлов, представляющих сборки. Порядок, в котором перечислены пути поиска, имеет значение. Для каждой сборки поиск по списку путей выполняется слева направо. Когда файл, представляющий сборку, найден, этот поиск останавливается, и начинается поиск для следующей сборки.

Этот параметр принимает разделенный точками с запятой список значений, которые могут быть либо путями к каталогам, либо специальными литеральными значениями из следующего перечня:

- {HintPathFromItem}: указывает, что задача проверит метаданные HintPath базового элемента.
- {CandidateAssemblyFiles}: указывает, что задача проверит файлы, переданные через параметр CandidateAssemblyFiles.
- {Registry:<AssemblyFoldersBase>, <RuntimeVersion>, <AssemblyFoldersSuffix>}. Указывает, что задача будет искать в дополнительных папках, указанных в реестре. Для поиска в расположении реестра <AssemblyFoldersBase>, <RuntimeVersion> и <AssemblyFoldersSuffix> следует заменить на указанные значения. Спецификация по умолчанию для общих целевых — {Registry:$(FrameworkRegistryBase), $(TargetFrameworkVersion), $(AssemblyFoldersSuffix), $(AssemblyFoldersExConditions)}.
- {AssemblyFolders}: указывает, что задача будет использовать схему поиска сборок из реестра Visual Studio.NET 2003.
- {GAC}: указывает, что задача будет выполнять поиск в глобальном кэше сборок.
- {RawFileName}: указывает, что задача будет рассматривать значение Include элемента в качестве точного пути и имени файла.
SerializationAssemblyFiles Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Содержит все найденные сборки сериализации XML. Эти элементы помечаются как CopyLocal=true, только если ссылка или зависимость, вызвавшая этот элемент, имеет значение CopyLocal=true.

Свойство CopyLocal метаданных Boolean указывает, следует ли копировать указанную ссылку в выходной каталог.
Silent Необязательный параметр Boolean.

Если значение true, сообщения не регистрируются. Значение по умолчанию — false.
StateFile Необязательный параметр String.

Задает имя файла, указывающее, где следует сохранить промежуточное состояние сборки для этой задачи.
SuggestedRedirects Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Содержит один элемент для каждого отдельного конфликтующего удостоверения сборки независимо от значения параметра AutoUnify . Сюда входят все языки и региональные параметры и найденные PKT, у которых не было подходящей записи bindingRedirect в файле конфигурации приложения.

Каждый элемент может содержать следующие сведения.

- Include : содержит полное имя семейства сборок со значением поля «Версия», равным 0.0.0.0.
- MaxVersion : содержат максимальный номер версии.
SupportsBindingRedirectGeneration Необязательный параметр Boolean.

Задайте значение true в поддерживаемых проектах, чтобы создать автоматические перенаправления привязок (в настоящее время поддерживается только для проектов EXE).
TargetedRuntimeVersion Необязательный параметр String.

Указывает целевую версию среды выполнения, например 2.0.57027 или v2.0.57027.
TargetFrameworkDirectories Необязательный параметр String[].

Указывает путь каталога целевой платформы. Этот параметр требуется для определения состояния CopyLocal полученных элементов.

Если этот параметр не указан, никакие полученные элементы не будут иметь значение CopyLocal, равное true, если только для них явно не задано значение метаданных Private, равное true в исходном элементе.
TargetFrameworkMoniker Необязательный параметр String.

Параметр TargetFrameworkMoniker для отслеживания при его наличии. Используется для ведения журнала.
TargetFrameworkMonikerDisplayName Необязательный параметр String.

Отображаемое имя TargetFrameworkMoniker для отслеживания при его наличии. Используется для ведения журнала.
TargetFrameworkSubsets Необязательный параметр String[].

Содержит список имен подсети целевой платформы для поиска в каталогах целевой платформы.
TargetFrameworkVersion Необязательный параметр String.

Версия целевой платформы проекта. Значение по умолчанию пустое, что означает, что фильтрация по целевой платформе для ссылок не выполняется.
TargetProcessorArchitecture Необязательный параметр String.

Предпочитаемая архитектура целевого процессора. Используется для разрешения ссылок на глобальный кэш сборок (GAC).

Этот параметр может иметь значение x86, IA64 или AMD64.

Если этот параметр отсутствует, задача сначала учитывает сборки, соответствующие архитектуре выполняющегося процесса. Если не удалось найти сборку, задача учитывает сборки в глобальном кэше сборок, имеющие значение ProcessorArchitecture , равное MSIL , или не имеющие значение ProcessorArchitecture .
UnresolvedAssemblyConflicts Необязательный выходной параметр ITaskItem[], доступный только для чтения.

Если параметру OutputUnresolvedAssemblyConflicts задано значение true, этот параметр будет содержать список сведений о неразрешенных конфликтах, который обычно включается в выходные данные MSB3277. В противном случае он будет пустым.
UnresolveFrameworkAssembliesFromHigherFrameworks Необязательный параметр Boolean.

Если задано значение true, сборки платформ, версии которых выше или равны версии целевой платформы, будут принудительно принимать неразрешенное состояние.
WarnOrErrorOnTargetArchitectureMismatch Необязательный параметр String.

Если между целевой архитектурой процессора и архитектурой первичной ссылки имеется несоответствие и параметр принимает значение Error, в журнал записывается ошибка, если параметр принимает значение Warning — предупреждение, а если None — запись в журнал не совершается. По умолчанию — Warning.

Предупреждения

Регистрируются следующие предупреждения:

  • ResolveAssemblyReference.TurnOnAutoGenerateBindingRedirects

  • ResolveAssemblyReference.SuggestedRedirects

  • ResolveAssemblyReference.FoundConflicts

  • ResolveAssemblyReference.AssemblyFoldersExSearchLocations

  • ResolveAssemblyReference.UnifiedPrimaryReference

  • ResolveAssemblyReference.PrimaryReference

  • ResolveAssemblyReference.UnifiedDependency

  • ResolveAssemblyReference.UnificationByAutoUnify

  • ResolveAssemblyReference.UnificationByAppConfig

  • ResolveAssemblyReference.UnificationByFrameworkRetarget

Замечания

Помимо перечисленных выше параметров, эта задача наследует параметры от класса TaskExtension, который, в свою очередь, наследует от класса Task. Список этих дополнительных параметров и их описания см. в статье Базовый класс TaskExtension.

См. также