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

时间:2017-05-01 23:28:17

标签: c# .net windows-10-universal portable-class-library

有很多帖子,博客,文章等...解释所有关于.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标准。我选择了.Net Standard 1.4,然后我突然想到了我需要的所有命名空间,并且我能够构建我的库。我也能够成功地将其添加为我的UWP应用程序的参考。

但是,我收到了以下6个例外情况,他们并没有过多地告诉我根本原因,所以我可以解决它。

Exceptions

所以,我的主要问题是,你能在你的UWP应用程序中引用.Net Standard 1.4库吗?第二,任何想法这些例外意味着什么?

谢谢!

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

1 个答案:

答案 0 :(得分:2)

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

Answer that helped:

以下是摘要:

  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"
      }    
    
  4. 而且,通过这些简单的步骤,我可以构建UWP项目并且上面的6个错误消失了。

    希望这有帮助!