9

我正在尝试创建一个类库,其中将包含 WebAPI(使用 ASP.NET 5)和消费 UWP 应用程序的常见对象(主要是 DTO)。但是,我还没有弄清楚如何创建类库,以便可以从其他两个项目中引用它。

到目前为止我所尝试的:
首先,我尝试了一个Class Library (Package),它可以在Web下找到。这种类型的库可以毫无问题地从 ASP.NET 项目中引用,但是当尝试从 UWP 项目中引用它时,我收到以下消息:

A reference to 'ClassLibrary1' could not be added. 

接下来,我尝试了一个Class Library (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.

那么:如何创建一个可用于 ASP.NET 5 项目UWP 项目的类库?

4

2 回答 2

8

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

PCL

由于您只针对 ASP.NET 5 和 Windows 10,您可以将平台限制为仅这两个,但支持更多平台并没有“错误”(虽然它可以限制有多少共享 API 可用)。

PCL 2

于 2015-12-01T21:40:25.003 回答
3

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

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

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

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

  1. .NET 标准简介
  2. .NET Standard 上的视频系列(这个特别好)
  3. .Net 标准常见问题解答
于 2017-02-13T01:46:22.580 回答