【问题标题】:Reference a class library from UWP and ASP.NET 5从 UWP 和 ASP.NET 5 引用类库
【发布时间】:2015-12-01 19:52:07
【问题描述】:

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

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

A reference to 'ClassLibrary1' could not be added. 

接下来,我尝试了一个类库(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 项目的类库?

【问题讨论】:

    标签: asp.net-core uwp project.json


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,只要 ASP.NET 5 只针对 dnxcore50(从长远来看,这是我的目标),它就可以很好地工作。但是,当同时定位dnx451 时,我会收到The type 'IEnumerable<T>' exists in both 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 之类的错误——我能做些什么呢?
    • 显然是a known issue,他们正在研究某些类型的多个版本。您可以尝试在 project.json 中查找引用,就像他们在问题中所做的那样。
    【解决方案2】:

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

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

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

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

    1. Introducing .NET Standard
    2. Video Series on .NET Standard(这个特别好)
    3. .Net Standard FAQ

    【讨论】:

      猜你喜欢
      • 2015-04-14
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      相关资源
      最近更新 更多