从UWP和ASP.NET 5引用类库

Hen*_*gen 9 project.json uwp asp.net-core

我正在尝试创建一个类库,它将包含WebAPI(使用ASP.NET 5)和消费UWP App的公共对象(主要是DTO).但是,我还没有想出如何创建类库,以便可以从其他项目中引用它.

到目前为止
我尝试过:首先,我尝试了一个类库(包),它可以在Web下找到.可以从ASP.NET项目中引用这种类型的库而不会出现问题,但是当尝试从UWP项目引用它时,我收到以下消息:

A reference to 'ClassLibrary1' could not be added. 
Run Code Online (Sandbox Code Playgroud)

接下来,我尝试了一个类库(Windows Universal),它可以在Windows> Universal下找到.这可以很容易地从UWP项目中引用,但是当尝试从ASP.NET引用它时,我得到:

The following projects are not supported as references : 

  - The project ClassLibrary2 has a target framework that is incompatible or has version higher than the current project and cannot be referenced.
Run Code Online (Sandbox Code Playgroud)

那么:我如何创建一个可以在ASP.NET 5项目 UWP项目中使用的类库?

Bar*_*art 7

您需要的是一个可移植类库(在Windows下).

PCL

由于您只是针对ASP.NET 5和Windows 10,因此您可以将平台限制为仅这两个,但是在支持更多平台时没有"错误"(它可以限制可用的共享API的数量).

PCL 2


Bla*_*ord 3

应该.Net Standard class library被认为是可移植类库的继承者。两者都旨在促进不同 .Net 平台之间共享代码(在本例中为模型对象/DTO)。

在 Visual Studio 2017 中,您现在可以选择 .Net Standard 类库模板。这个类库可以设置为针对不同版本的.Net Standard。您应该针对的 .Net 标准版本取决于您希望在哪些 .Net 平台之间共享代码。

对于这个特定问题,我们希望支持通用 Windows 平台 (UWP) 应用程序和 Asp.Net Core 应用程序。因此,我们应该参考此兼容性表来确定支持这两个平台的 .Net Standard 版本。在这种情况下,它将是.Net Standard 1.4。将类库设置为面向 .Net Standard 1.4 后,您可以从 UWP 和 Asp.Net 核心项目添加对类库的引用。

为了更好地理解 .Net 标准是什么以及它如何促进代码共享,我建议查看以下内容:

  1. .NET 标准简介
  2. .NET Standard 视频系列(这个特别好)
  3. .Net 标准常见问题解答