Библиотека 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)).
Я пробовал решения из разных сообщений о похожих проблемах (например, этой), но безуспешно. Кроме того, я не нашел других сообщений, в которых проблема возникает только в определенной структуре.
Я не знаю, связано ли это с различиями в ссылочных сборках, но код ошибки на самом деле этого не предполагает?
Кто-нибудь сталкивался с подобными проблемами, и если да, то как вы их решили?