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.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по