Ссылка COM 'XyzLib' - это сборка взаимодействия для элемента управления ActiveX 'AxXyzLib', но она была помечена компилятором как флаг / link - PullRequest
1 голос
/ 12 февраля 2020

Я ссылаюсь на элемент управления OCX, написанный на C ++ и предназначенный для собственного кода x86 из. NET 3.5 C# DLL. Я получаю это некритическое сообщение об ошибке. Ищу как от этого избавиться. Я искал в Интернете, но ссылки, которые я нашел до сих пор, не помогли.

COM Reference 'SIGPLUSLib' - это сборка взаимодействия для элемента управления ActiveX 'AxSIGPLUSLib', но он был помечен компилятором как связанный. с флагом / ссылка. Эта ссылка COM будет считаться ссылкой и не будет связана.

Я просмотрел свойства обеих ссылок SigPlusLib и AxSigPlusLib но я не вижу места, где какой-либо из них был помечен как связанный с / link флагом.

Ссылки, на которые я смотрел, безрезультатно

link1

link2

link3 В этом предложено установить для встроенного взаимодействия значение false, но я не нахожу этот параметр в свойствах для SigPlusLib или AxSigPlusLib . enter image description here

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

Загадка, почему опция Embed Interop Types не была доступна в окне свойств ссылки, по-видимому, была вызвана сборкой DLL с такой старой версией (3.5). NET. Я обновил C# DLL для использования. NET 4.7.2 и опция Embed Interop Types была доступна и показала, что в SigPlusLib опция была установлена ​​в TRUE. Как только я установил FALSE, сообщение об ошибке исчезло. Оболочки взаимодействия были автоматически сгенерированы, когда я добавил элемент управления в мою форму, а во втором «SigPlusLib» была установлена ​​опция «Внедрение» по умолчанию, когда она была автоматически сгенерирована Visual Studio.

0 голосов
/ 12 февраля 2020

Это происходит, когда вы используете OCX напрямую из C# или VB. NET, как вы это делаете.

Чтобы решить эту проблему, вы должны переключиться на программирование с использованием PIA (первичных сборок взаимодействия), предоставляемых поставщиком OCX.

Например, Microsoft предлагает PIA для Office.
Основные сборки взаимодействия Office

Однако поставщики OCX не всегда предоставляют PIA.
Пожалуйста, спросите Поставщик OCX.

В качестве альтернативы, вы можете использовать tlbimp.exe для создания своей собственной PIA, даже если поставщик не предоставляет ее.
Однако это не рекомендуется, так как будет переработано, когда улучшатся функции поставщика или исправлены ошибки происходят.

Если вы или ваша компания являетесь поставщиком OCX, то создание и предоставление PIA было бы правильным решением.

Пожалуйста, обратитесь к следующему.
Первичные сборки взаимодействия
Создание первичных сборок взаимодействия
Создание первичных сборок взаимодействия
Tlbimp.exe (Импорт библиотеки типов)
Программирование с помощью основных сборок взаимодействия

Взаимодействие с неуправляемым кодом
Предоставление COM-компонентов для. NET Framework


Или вы не можете проверить имя или тип, но после. NET 4 ссылка на ocx не требуется при использовании типа Dynami c.
Как новый тип C# Dynami c может упростить доступ к объекту COM с поздней привязкой

...