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

Can I reference a .NetStandard library from my Windows 10 UWP app?

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

问题出在这里,我有一个 Windows 10 UWP 应用程序,我需要引用我创建的库。我首先将该库创建为 NetCore 库,但我无法从我的 UWP 应用程序中引用它(这令人困惑,因为 UWP 使用 .Net Core 但我创建的 .Net Core 库假设这是用于 ASP.NET?)。 =13=]

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

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

但是,我收到以下 6 个异常,它们没有告诉我太多有关根本原因的信息,因此我可以修复它。

所以,我的主要问题是,您能否在您的 UWP 应用中引用 .Net Standard 1.4 库?其次,知道这些异常是什么意思吗?

谢谢!

编辑 - 我已经在此处上传了两个 csproj 文件:csproj files

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

总结如下:

  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"
      }    
    

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

希望对您有所帮助!