Я использую одну и ту же библиотеку связи и зависимости во всех приложениях. В проекте .NET MAUI часть сканирования устройств работает правильно с использованием основной DLL, но происходит сбой при попытке создать экземпляр открытого объекта устройства (CreateAndConnect во фрагменте кода). Я получаю сообщение об ошибке: «Внешний компонент вызвал исключение».
Это исключение возникает во время вызова метода в той же DLL, которая успешно сканировала устройство.
Вот упрощенная версия кода, которая работает при вызове из консоли и WPF, но не работает при вызове из .NET MAUI:
Код: Выделить всё
public virtual bool BindDevice(string serialNumber)
{
List
lDeviceInfos = new List();
lSystem.DetectionTimeout = 200;
lSystem.Find();
uint interfaceCount = lSystem.InterfaceCount;
PvInterface lInterface;
for (uint x = 0; x < interfaceCount; x++)
{
// Get pointer to each of interface.
lInterface = lSystem.GetInterface(x);
// Get the number of GigE Vision devices that were found using GetDeviceCount.
uint lDeviceCount = lInterface.DeviceCount;
for (uint y = 0; y < lDeviceCount; y++)
{
var lDeviceInfo = lInterface.GetDeviceInfo(y);
if (lDeviceInfo != null)
{
lDeviceInfos.Add(lDeviceInfo);
}
}
}
var lDeviceInfoID = lDeviceInfos.Where(di => di.UniqueID == serialNumber).First();
if (("".Equals(serialNumber) ||lDeviceInfoID.UniqueID.Equals(serialNumber)))
{
try
{
lDevice = PvDevice.CreateAndConnect(lDeviceInfoID);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return false;
}
}
return true;
}
.NET MAUI Project
Windows 10
.NET 7.0
Использование 64-битной PvDotNet.dll и связанных зависимостей
p>
Кто-нибудь сталкивался с подобной проблемой в проектах .NET MAUI? Будем очень признательны за любые идеи или решения.
Я исследовал различия в развертывании между .NET MAUI и другими типами проектов и убедился, что все предоставленные библиотеки копируются в рабочую папку .NET. Приложение MAUI.
Подробнее здесь: https://stackoverflow.com/questions/785 ... nent-has-t
Мобильная версия