有很多帖子,博客,文章等...解释所有关于.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个例外情况,他们并没有过多地告诉我根本原因,所以我可以解决它。
所以,我的主要问题是,你能在你的UWP应用程序中引用.Net Standard 1.4库吗?第二,任何想法这些例外意味着什么?
谢谢!
编辑 - 我在这里上传了两个csproj文件:csproj files
答案 0 :(得分:2)
好的,我找到了答案,但主要是基于这个答案,我在发布问题之前没有看到由于搜索条件(我花了一天时间搜索并试图找到答案)。
以下是摘要:
UWP支持.NetStandard 1.4。
默认情况下,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。
最后,我在我的UWP项目中修改了project.json以导入netstandard1.4框架。它看起来像这样:
"frameworks": {
"uap10.0": {
"imports": "netstandard1.4"
}
而且,通过这些简单的步骤,我可以构建UWP项目并且上面的6个错误消失了。
希望这有帮助!