Задача ResolveComReference

Задача принимает список из одной или нескольких библиотек типов или файлов TLB и определяет расположение этих библиотек на диске.

Параметры

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

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

Если присвоено значение true, помещает открытый ключ в сборку. Если присвоено значение false, полностью подписывает сборку.
EnvironmentVariables Необязательный параметр String[].

Массив пар переменных среды, разделенных знаками равенства. Эти переменные частично передаются в порожденные процессы tlbimp.exe и aximp.exe, дополняя или выборочно переопределяя обычный блок среды.
ExecuteAsTool Необязательный параметр Boolean.

Если задано значение true, из соответствующей внепроцессной требуемой версии .NET Framework запустятся процессы Tlbimp.exe и Aximp.exe для создания необходимых сборок-оболочек. Этот параметр разрешает настройку для различных версий.
IncludeVersionInInteropName Необязательный параметр Boolean.

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

Задает контейнер, хранящий пару из открытого и закрытого ключей.
KeyFile Необязательный параметр String.

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

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

Указывает полные имена файлов на диске, соответствующие физическим расположениям библиотек типов, которые были указаны во входных данных задачи.
ResolvedModules Необязательный параметр ITaskItem[].
SdkToolsPath Необязательный параметр System.String.

Если ExecuteAsTool имеет значение true, в качестве значения этого параметра следует установить путь к инструментам пакета SDK для целевой версии платформы.
StateFile Необязательный параметр String.

Указывает файл кэша для меток времени COM-компонентов. Если он отсутствует, при каждом запуске будут повторно создаваться все оболочки.
TargetFrameworkVersion Необязательный параметр String.

Указывает версию целевой платформы проекта.

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

Указывает предпочитаемую архитектуру целевого процессора. После преобразования передается во флаг /machine tlbimp.exe.

Значение параметра должно быть элементом ProcessorArchitecture.
TypeLibFiles Необязательный параметр ITaskItem[].

Указывает путь к файлу библиотеки типов для COM-ссылок. Элементы, включенные в этот параметр, могут содержать метаданные элементов. Дополнительные сведения см. в разделе Метаданные элементов TypeLibFiles далее в этой статье.
TypeLibNames Необязательный параметр ITaskItem[].

Указывает имена библиотек для разрешения. Элементы, включенные в этот параметр, должны содержать метаданные элементов. Дополнительные сведения см. в разделе Метаданные элементов TypeLibNames далее в этой статье.
WrapperOutputDirectory Необязательный параметр String.

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

Метаданные элементов TypeLibNames

В следующей таблице описаны метаданные, которые доступны для элементов, передаваемых в параметр TypeLibNames.

Метаданные Description
GUID Обязательные метаданные элементов.

Идентификатор GUID для библиотеки типов. Если эти метаданные элементов не заданы, задача завершается с ошибкой.
VersionMajor Обязательные метаданные элементов.

Основной номер версии для библиотеки типов. Если эти метаданные элементов не заданы, задача завершается с ошибкой.
VersionMinor Обязательные метаданные элементов.

Дополнительный номер версии для библиотеки типов. Если эти метаданные элементов не заданы, задача завершается с ошибкой.
EmbedInteropTypes Необязательные метаданные типа Boolean.

При значении true внедряет типы взаимодействия из этой ссылки непосредственно в сборку (а не создает библиотеку DLL взаимодействия).
LocaleIdentifier Необязательные метаданные элементов.

Код языка для библиотеки типов. Он указывается в виде 32-разрядного значения, которое определяет естественный язык, являющийся предпочитаемым для пользователя, региона или приложения. Если эти метаданные элементов не заданы, задача использует код языка по умолчанию "0".
WrapperTool Необязательные метаданные элементов.

Указывает средство-оболочку, используемое для создания сборки-оболочки для этой библиотеки типов. Если эти метаданные элементов не заданы, задача использует программу-оболочку по умолчанию "tlbimp". Доступные и чувствительные к регистру варианты библиотек типов:

- Primary: используйте это средство-оболочку, когда требуется использовать уже созданную основную сборку взаимодействия для COM-компонента. При использовании этого средства-оболочки не указывайте выходной каталог оболочки, иначе произойдет сбой задачи.
- TLBImp: используйте это средство-оболочку, когда требуется создать сборку взаимодействия для COM-компонента.
- PrimaryOrTLBImp: Используйте это средство для создания оболочки, если не знаете, что вам подходит (Primary или TLBImp). Сначала применяется логика Primary, а затем TLBImp.
- AXImp: используйте это средство-оболочку, когда требуется создать сборку взаимодействия для элемента ActiveX.

Метаданные элементов TypeLibFiles

В следующей таблице описаны метаданные, которые доступны для элементов, передаваемых в параметр TypeLibFiles.

Метаданные Description
EmbedInteropTypes Необязательный параметр Boolean.

При значении true внедряет типы взаимодействия из этой ссылки непосредственно в сборку (а не создает библиотеку DLL взаимодействия).
WrapperTool Необязательные метаданные элементов.

Указывает средство-оболочку, используемое для создания сборки-оболочки для этой библиотеки типов. Если эти метаданные элементов не заданы, задача использует программу-оболочку по умолчанию "tlbimp". Доступные и чувствительные к регистру варианты библиотек типов:

- Primary: используйте это средство-оболочку, когда требуется использовать уже созданную основную сборку взаимодействия для COM-компонента. При использовании этого средства-оболочки не указывайте выходной каталог оболочки, иначе произойдет сбой задачи.
- TLBImp: используйте это средство-оболочку, когда требуется создать сборку взаимодействия для COM-компонента.
- AXImp: используйте это средство-оболочку, когда требуется создать сборку взаимодействия для элемента ActiveX.

Примечание.

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

Замечания

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

Для работы этой задачи не нужно регистрировать DLL-библиотеку COM на компьютере.

Ошибка MSB4803

При попытке запустить проект, который использует задачу ResolveCOMReference из команд CLI dotnet, возникает ошибка:

MSB4803: The task "ResolveComReference" is not supported on the .NET Core version of MSBuild. Please use the .NET Framework version of MSBuild.

"Эта задача не поддерживается на платформе MSBuild версии .NET Core, которая используется при выполнении команды dotnet build из командной строки. Попробуйте выполнить сборку проекта, вызвав MSBuild.exe из Командной строки разработчика Visual Studio, так как в этом случае используется MSBuild версии .NET Framework".

См. также