从 .net 标准 class 库中引用 UWP 库

Reference UWP library from .net standard class library

我有一些项目的解决方案:

我想尽可能多地使用 .net 标准项目(对于共享项目,最好是插件),因为它们更轻巧,并且可以在不卸载它们的情况下进行编辑 Visual Studio 例如。

从 UWP 项目引用 .net standard 1.4 库没问题,但是从 .net standard 1.4 项目引用 UWP 项目会导致错误:

Project DeviceSDK is not compatible with netstandard1.4 (.NETStandard,Version=v1.4).
Project DeviceSDK supports: uap10.0.15063 (UAP,Version=v10.0.15063)

这有什么解决方法吗?

这根本不可能。跨平台库将无法引用特定于平台的库。

我从该项目重构了设备 SDK 的接口和数据模型,并创建了一个 .net 标准 DeviceSdk.Core 项目。然后可以从应用程序逻辑项目和 DeviceSdk 主项目中引用此项目。

所以结构大致变成:

  • ClientApp - UWP 项目,引用除 ClientApp.Frontend 项目之外的所有项目
  • DeviceSdk - UWP 项目(因为蓝牙 API),引用 DeviceSdk.Core
  • DeviceSdk.Core - .net 标准 1.4
  • ClientApp.Frontend - ASP.Net Core 1.1 针对 .Net Core 2.0,引用 ClientApp.Core
  • ClientApp.Plugins - .net 标准 1.4,引用 ClientApp.Core 和 DeviceSdk.Core
  • ClientApp.Core(一些具有共享模型和接口的项目类)- .net standard 1.4

.net 标准 class 库无法引用 UWP 库。那会破坏 .net Standard 的整个概念。

想法是,针对特定 .net 标准版本的 class 库只能引用标准定义的有限的 API 集。

例如,.net standard v1.4 只允许 API-s 列在此文件中: https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.4_ref.md

此列表已冻结,应该保持完整。