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


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 . Указывает путь и имя файла для использования в качестве ссылки. Эти метаданные используются при {HintPathFromItem} указании в параметре SearchPaths . Значение по умолчанию — пустая строка.
- 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 метаданными разрешаются в полные пути сборки. Элементы с метаданными nonempty SubType игнорируются.
- AssemblyFolderKey: значение String . Эти метаданные поддерживаются для обратной совместимости. Они указывают пользовательский раздел реестра, такой как hklm\<VendorFolder>, который Assemblies следует использовать для разрешения ссылок на сборки.
AssemblyFiles Необязательный параметр ITaskItem[].

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

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

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

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

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

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

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

Когда trueкаждое различающееся переназначает комментарий с высоким приоритетом, показывающий старые и новые версии, и это AutoUnify было true.

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

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

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

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

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

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

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

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

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

Если значение false, ссылки на файлы проекта проверяются, есть ли они в GAC и копируются локально.

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

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

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

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

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

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

Включает устаревший режим для определения CopyLocal. Если значение true, ссылки на сборки не будут скопированы локально, если они найдены в GAC. Если значение false, сборки копируются локально, если они не найдены только в GAC. Значение по умолчанию — 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, расположение пакета 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}: указывает задаче выполнять поиск в глобальном кэше сборок (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регистрируется ошибка; если предупреждение регистрируется; при WarningNoneотсутствии ошибок или предупреждений. По умолчанию — Warning.

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

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

  • ResolveAssemblyReference.TurnOnAutoGenerateBindingRedirects

  • ResolveAssemblyReference.SuggestedRedirects

  • ResolveAssemblyReference.FoundConflicts

  • ResolveAssemblyReference.AssemblyFoldersExSearchLocations

  • ResolveAssemblyReference.UnifiedPrimaryReference

  • ResolveAssemblyReference.PrimaryReference

  • ResolveAssemblyReference.UnifiedDependency

  • ResolveAssemblyReference.UnificationByAutoUnify

  • ResolveAssemblyReference.UnificationByAppConfig

  • ResolveAssemblyReference.UnificationByFrameworkRetarget

Замечания

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

См. также