2017-05-01 37 views
4

有大量的帖子,博客,文章等......解释了所有这些与.Net/.NetCore/.NetStandard有关的令人困惑的东西,我也阅读了其中的很多。我可以从Windows 10 UWP应用程序中引用.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标准1.4库?其次,这些例外意味着什么?

谢谢!

编辑 - 我已经在这里上传两者的csproj文件:csproj files

+0

如果可能,请包括UWP项目和库的.csproj。 –

+0

.NET Core类库只能由.NET Core应用程序使用,目前仅支持控制台应用程序和Web应用程序。 UWP恰巧激发了.NET Core开发,并共享了一些工具(如NuGet/project.json)。但是,UWP仅适用于Windows,并未归类为.NET Core的一部分。 PCL是过去的,所以没有评论它。你唯一的问题就是为什么NuGet包会触发错误。 –

+0

@ScottChamberlain我已经添加了一个链接到csproj文件。感谢您看到这一点,这一切都非常混乱。请注意,UWP应用程序是我放在一起的测试实用程序,所以它非常轻,应该有助于消除此问题的原因。谢谢! –

回答

2

好吧,我发现这个问题的答案,但它主要是基于这样的回答,我没有张贴由于搜索方面我的问题之前看到(我有字面上花了一天的时间搜索并试图找到答案)。

Answer that helped:

这里是一个总结:

  1. .NetStandard 1.4由UWP支持。

  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个错误消失。

希望这会有所帮助!

相关问题