我可以从Windows 10 UWP应用中引用.NetStandard库吗?

Mic*_*ord 5 .net c# portable-class-library windows-10-universal

有大量的帖子,博客,文章等...解释了有关.Net / .NetCore / .NetStandard的所有这些令人困惑的内容,我已经阅读了很多。

这是问题,我有一个Windows 10 UWP应用,我需要引用我创建的库。我首先将库创建为NetCore库,但无法从我的UWP应用中引用该库(这令人困惑,因为UWP使用.Net Core,但是我创建的.Net Core库假定这是针对ASP.NET的?)。

因此,然后我尝试将该库创建为PCL库,并且仅针对Windows 10 UWP(由于它们相同,因此它将强制您使用Windows 8.1)。有了这种类型的库,我相信我可以从UWP应用程序中引用它,但是这使我丢失了太多无法建立库的.Net名称空间。

最后,我然后在项目属性中选择了链接,以.Net Standard为目标。我选择了.Net Standard 1.4,突然之间,我有了所需的所有命名空间,并且能够构建我的库。我也能够成功将其添加为对我的UWP应用的引用。

但是,我得到了以下6个异常,它们对根本原因并没有告诉我太多,因此我可以对其进行修复。

例外情况

因此,我的主要问题是,您可以在UWP应用程序中引用.Net Standard 1.4库吗?其次,有什么想法这些例外意味着什么?

谢谢!

编辑-我在这里都上传了两个csproj文件:csproj文件

Mic*_*ord 2

好吧,我找到了这个答案,但它主要基于这个答案,由于搜索词,我在发布问题之前没有看到这个答案(我实际上花了一天多的时间搜索并试图找到答案)。

有帮助的答案:

总结如下:

  1. UWP 支持.NetStandard 1.4。

  2. 默认情况下,UWP 项目的 VS 2015 Update 3 模板导入 Microsoft.NetCore.UniversalWindowsPlatform 版本 5.1.0。我确信 VS 2017 模板将从较新的版本开始,5.1.0 相当旧。因此,根据上面链接的答案,我更新(使用 NuGet)到 VS 2015 Update 3 允许的最新版本,在本答案时,版本为 5.2.3。有 5.3.x 版本,但需要 VS 2017。

  3. 最后,我修改了UWP项目中的project.json以导入netstandard1.4框架。它看起来像这样:

    "frameworks": {
      "uap10.0": {
        "imports": "netstandard1.4"
      }    
    
    Run Code Online (Sandbox Code Playgroud)

而且,通过这些简单的步骤,我可以构建 UWP 项目,并且上述 6 个错误就会消失。

希望这可以帮助!