Однако я действительно не хочу/не могу менять свою TargetFramework. Он должен оставаться только в Net8.0 и Net8.0. Многочисленные TargetFrameWorks также не являются для меня вариантом. Microsoft.windows.sdk.net.ref Nuget Package, который я пытался включить. Однако при строительстве я получаю ошибку nu1213: < /p>
Ошибка nu1213: пакет microsoft.windows.sdk.net.ref 10.0.26100.57 имеет тип пакета dotnetplatform, который несовместимый с этим проектом. Приводит меня к тому, что у Nuget есть пользовательский тип пакета, который не может быть установлен Nuget. Мои знания и информация в Интернете, однако, довольно ограничены, поэтому, возможно, есть другая причина. < /P>
Что работает до сих пор < /h4>
После большого количества тестирования мне удалось получить что -то работающее, но она чувствует себя очень взломанным. Я могу проверить выполнение ОС, а затем загружать и создавать сборку только в том случае, если мы находимся в Windows.
Код: Выделить всё
├── BaseProject - TargetFramework: net8.0
│ └── IMyInterface.cs
├── ConsoleProject - TargetFramework: net8.0
│ ├── Microsoft.Windows.SDK.NET.dll
│ └── Programm.cs
└── WindowsProject - TargetFramework: net8.0-windows10.0.19041.0
└── MyClass.cs (implements IMyInterface)
Консолепроект Program.cs выглядит как это так же:
var assembly = Assembly.LoadFile("windowsAssembly");
var windowsClassType = assembly.GetType("MyClass");
IMyInterface windowsClass = Activator.CreateInstance(windowsClassType) as IMyInterface;
await windowsClass.SomeMethodAsync().ConfigureAwait(false);
В моем небольшом тесте методы Somemethodasync обращаются к API Windows, получив адаптер Bluetooth по умолчанию. />system.Reflection.ReflectionTypeloAdexception: невозможно загрузить один или несколько запрашиваемых типов.
Не удалось загрузить файл или сборку 'Microsoft.windows.sdk.net, версия = 10.0.19041.38, культура = нейтраль, publickeytoken = 31bf385664e35'. Система не может найти указанный файл.
Когда я строю/публикую WindowsProject, Microsoft.windows.sdk.net , кажется, не включена в windowsproject.dll? Microsoft.windows.sdk.net.ref nuget и вручную добавлены их в консошном разбирательстве .csproj.
Теперь он работает (но по какой стоимости>
Подробнее здесь: https://stackoverflow.com/questions/796 ... ework-to-n