Библиотека COM не может зарегистрироваться в .NET Core

Я работаю с некоторыми библиотеками COM, которые позволяют мне подключаться к IBM PCOMM API. Я пытаюсь получить список подключений из объекта с именемAutConnList(). Код выглядит так:

using AutConnListTypeLibrary;
using AutOIATypeLibrary;
using AutPSTypeLibrary;

public static List<string> GetSessions()
{
    var sessions = new List<string>();

    AutConnList connectionList = new AutConnList();
    connectionList.Refresh();

    for (int i = 1; i <= connectionList.Count; i++)
    {
        IAutConnInfo sessionInfo = (IAutConnInfo)connectionList[i];
        sessions.Add(sessionInfo.Name);
    }

    return sessions;
}

Я компилирую код как для.NET Framework (4.6), так и для.NET Core (3.0), поскольку он задуман как библиотека, используемая многими различными программами. Мультикомпиляция выполняется путем добавления следующей строки в файл.csproj:

<TargetFrameworks>netcoreapp3.0;net46</TargetFrameworks>

Этот метод работает должным образом при использовании из приложений.NET Framework, но когда я пытаюсь использовать его из.NET Core, я получаю следующее исключение:

Не удалось получить фабрику классов COM для компонента с CLSID {9DF30780-6F18-11D0-910D-0004AC3617E1} из-за следующей ошибки: 80040154 Класс не зарегистрирован (0x80040154 (REGDB_E_CLASSNOTREG)).

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

Я не знаю, связано ли это с различиями в ссылочных сборках, но код ошибки на самом деле этого не предполагает?

Кто-нибудь сталкивался с подобными проблемами, и если да, то как вы их решили?

0 ответов

Другие вопросы по тегам