Как вызовать API-интерфейсы Windows Runtime без установки DotNet TargetFramework на net8-windows.x?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как вызовать API-интерфейсы Windows Runtime без установки DotNet TargetFramework на net8-windows.x?

Сообщение Anonymous »

Я хочу создать библиотеку Dotnet, которая поддерживает как Linux, так и Windows. Библиотека обнаруживает, на какой ОС она работает, и выполняет соответствующую реализацию. Для реализации Windows мне нужны API Windows, которые я мог бы получить, установив свою TargetFramework для (например) Net8.0-Windows10.0.19041.0 .
Однако я действительно не хочу/не могу менять свою 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)
В моем базовом я определил интерфейс, который реализован классом myclass of WindowsProject.
Консолепроект 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как создать проект Dotnet Cross-Platform (Linux/Win), поддерживающий вызовы Windows API с помощью TargetFramework = net8
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как создать проект Dotnet Cross-Platform (Linux и Windows), а TargetFrameWork-только .NET 8.0
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Используйте более новую версию SDK dotnet, чем TargetFramework, при сборке C++/CLI.
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Laravel/framework v10.9.0 требует композитора-runtime-api ^2.2 -> найден композитор-runtime-api[2.1.0] в стандартном раз
    Anonymous » » в форуме Php
    0 Ответы
    85 Просмотры
    Последнее сообщение Anonymous
  • Dotnet 6 dotnet-ef не работает после установки
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»