Задача ResolveAssemblyReference

Обновлен: Июль 2008

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

Параметры

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

Параметр

Описание

AllowedAssemblyExtensions

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

Расширение имени файла сборки для разрешения ссылок. Расширениями имен файлов по умолчанию являются DLL и EXE.

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.

  • ExecutableExtension: значение типа String. Если данное значение присутствует, разрешенные сборки должны иметь это расширение. Если данное значение отсутствует, сначала рассматривается библиотека DLL, а затем EXE-файл для каждого исследуемого каталога.

  • SubType: значение типа String. В полные пути сборок будут разрешаться только элементы, для которых параметр SubType пуст. Элементы с непустым параметром SubType будут проигнорированы.

  • AssemblyFolderKey: значение типа String. Этот параметр поддерживается для обратной совместимости. Он определяет пользовательский раздел реестра, например "hklm\VendorFolder", с помощью которого элемент Assemblies должен разрешать ссылки на сборки.

AssemblyFiles

Необязательный параметр типа ITaskItem[].

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

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

  • Private: необязательное значение типа Boolean. Если параметр имеет значение "true", то элемент копируется локально.

  • FusionName: необязательные метаданные типа String. Задает простое или строгое имя объекта данного элемента. Присутствие этого атрибута позволяет сэкономить время, поскольку для получения имени не требуется открывать файл сборки.

AutoUnify

Необязательный параметр типа Boolean.

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

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

Значение по умолчанию — false.

CandidateAssemblyFiles

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

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

Сборки, содержащиеся в этом списке, будут рассматриваться, если параметр SearchPaths содержит {CandidateAssemblyFiles} как один из путей рассмотрения.

CopyLocalFiles

Необязательный выходной параметр ITaskItem[], предназначенный только для чтения.

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

FilesWritten

Необязательный выходной параметр типа ITaskItem[].

Содержит элементы, записываемые на диск.

FindDependencies

Необязательный параметр типа Boolean.

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

FindRelatedFiles

Необязательный параметр типа Boolean.

Если параметр имеет значение true, будут найдены связанные файлы, например PDB-файлы и XML-файлы. Значение по умолчанию — true.

FindSatellites

Необязательный параметр типа Boolean.

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

FindSerializationAssemblies

Необязательный параметр типа Boolean.

Если параметр имеет значение true, задача будет искать сборки сериализации. Значение по умолчанию — true.

FullTargetFrameworkSubsetNames

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

Содержит список имен подмножеств требуемой версии .NET Framework. Если имя подмножества в списке совпадает с именем в свойстве TargetFrameworkSubset, система исключает конкретное подмножество требуемой версии .NET Framework во время построения.

IgnoreDefaultInstalledAssemblyTables

Необязательный параметр типа Boolean.

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

IgnoreDefaultInstalledAssemblySubsetTables

Необязательный параметр типа Boolean.

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

InstalledAssemblySubsetTables

Необязательный параметр типа ITaskItem[].

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

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

с конкретным каталогом .NET Framework.

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

InstalledAssemblyTables

Необязательный параметр типа String.

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

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

Элементы в этом списке могут содержать метаданные "FrameworkDirectory" для связывания элемента InstalledAssemblyTable с конкретным каталогом .NET Framework. Но этот параметр не учитывается, если имя Redist начинается с

"Microsoft-Windows-CLRCoreComp".

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

в TargetFrameworkDirectories.

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. Указывает символьный путь поиска, с которого разрешается этот файл.

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_}:

  • {AssemblyFolders}: указывает задаче использовать схему поиска сборок из реестра Visual Studio .NET 2003.

  • {GAC}: указывает задаче выполнять поиск в глобальном кэше сборок.

  • {RawFileName}: указывает задаче принимать значение элемента Include как точный путь и имя файла.

Silent

Необязательный параметр типа Boolean.

Если параметр имеет значение true, сообщения не протоколируются. Значение по умолчанию — false.

StateFile

Необязательный параметр типа String.

Определяет имя файла, указывающее, где сохраняется промежуточное состояние построения для данной задачи.

SuggestedRedirects

Необязательный выходной параметр ITaskItem[], предназначенный только для чтения.

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

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

  • Атрибут Include: содержит полное имя семейства сборки со значением 0.0.0.0 в поле Version.

  • Элемент метаданных MaxVersion: содержит максимальный номер версии.

TargetFrameworkDirectories

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

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

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

TargetFrameworkSubsets

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

Содержит список имен подмножеств требуемых версий платформы .NET Framework, поиск которых будет выполняться в каталогах требуемых версий платформы.

TargetFrameworkVersion

Необязательный параметр типа String.

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

TargetProcessorArchitecture

Необязательный параметр типа String.

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

Этот параметр может иметь следующие значения: x86, IA64 и AMD64.

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

См. также

Основные понятия

Задачи MSBuild

Другие ресурсы

Справочные сведения о задачах MSBuild

Журнал изменений

Дата

Изменения

Причина

Июль 2008

Добавлены следующие параметры:

  • AllowedAssemblyExtensions

  • AllowedRelatedFileExtensions

  • FindSerializationAssemblies

  • FullTargetFrameworkSubsetNames

  • IgnoreDefaultInstalledAssemblyTables

  • IgnoreDefaultInstalledAssemblySubsetTables

  • InstalledAssemblySubsetTables

  • InstalledAssemblyTables

  • TargetFrameworkSubsets

  • TargetFrameworkVersion

Изменение функции SP1.