Консольное приложение динамически загружает сборку, содержащую класс, который ссылается на System.IO.Ports.
И приложение, и библиотека классов являются целью net8.0-windows.
Я получаю исключение System.IO.Ports в настоящее время поддерживается только в Windows., хотя команда < em>OperatingSystem.IsWindows() возвращает true.
Если я добавлю ссылку на библиотеку классов из консольного приложения, ошибка исчезнет.
Предполагаю, что при динамической загрузке теряется информация о целевой среде выполнения.
Добавление
win-x64
в проекты не помогает.
Минимальный воспроизводимый пример доступен на GitHub.
Консольное приложение файл проекта:
Exe
net8.0-windows
enable
enable
Файл проекта библиотеки классов:
net8.0-windows
enable
enable
true
Program.cs:
using System.Reflection;
try
{
var serialPortPath = "..\\..\\..\\..\\SerialPort\\bin\\Debug\\net8.0-windows\\SerialPort.dll";
var serialAssembly = Assembly.LoadFrom(serialPortPath);
var serialPort = Activator.CreateInstance(serialAssembly.GetType("SerialPort.SerialPort"));
}
catch
{
// Do nothing
}
SerialPort.cs:
namespace SerialPort
{
public class SerialPort
{
public SerialPort()
{
var serial = new System.IO.Ports.SerialPort();
}
}
}
Исключение генерируется
var serial = new System.IO.Ports.SerialPort();
Подробнее здесь: https://stackoverflow.com/questions/790 ... lly-loadin
«System.IO.Ports в настоящее время поддерживается только в Windows» при динамической загрузке сборки на компьютере с Win ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка System.IO.Ports и .NET7: «System.IO.Ports в настоящее время поддерживается в Windows»
Anonymous » » в форуме C# - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ошибка System.IO.Ports и .NET7: «System.IO.Ports в настоящее время поддерживается в Windows»
Anonymous » » в форуме C# - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-