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

时间:2017-04-30 11:19:00

标签: c# uwp .net-core .net-standard

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

  • 客户端应用程序 - UWP项目
  • 设备sdk - UWP项目(因为蓝牙API)
  • 客户端应用 - 面向.Net Core 2.0的ASP.Net Core 1.1
  • 客户端应用插件
  • 一些具有共享模型和接口类的项目。

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

从UWP项目引用.net标准1.4库很好,但是从.net标准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)

这有什么解决方法吗?

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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

所以结构变得粗略:

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

答案 2 :(得分:0)

.net标准类库不能引用UWP库。这将破坏.net标准的整个概念。

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

例如,.net标准v1.4仅允许在此文件中列出的API: https://github.com/dotnet/standard/blob/master/docs/versions/netstandard1.4_ref.md

此列表已冻结,应该保持不变。