从 .net 标准 class 库中引用 UWP 库
Reference UWP library from .net standard class library
我有一些项目的解决方案:
- 客户端应用程序 - UWP 项目
- 设备 sdk - UWP 项目(因为蓝牙 API)
- 客户端应用程序 - ASP.Net Core 1.1 针对 .Net Core 2.0
- 客户端应用插件
- 一些具有共享模型和界面的项目类。
我想尽可能多地使用 .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
此列表已冻结,应该保持完整。
我有一些项目的解决方案:
- 客户端应用程序 - UWP 项目
- 设备 sdk - UWP 项目(因为蓝牙 API)
- 客户端应用程序 - ASP.Net Core 1.1 针对 .Net Core 2.0
- 客户端应用插件
- 一些具有共享模型和界面的项目类。
我想尽可能多地使用 .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
此列表已冻结,应该保持完整。