【问题标题】:Netstandard libraries - referencing in portable classesNetstandard 库 - 在可移植类中引用
【发布时间】:2017-04-15 22:45:20
【问题描述】:

我对 netstandard 库的使用有疑问:

假设我有 UWP 项目。该项目允许安装 1.4 及以下版本的 netstandard 库。我正在使用 netstandard 1.2 版创建 PCL 库,并将此库添加为对 UWP 项目的引用。我正在向 PCL 库添加一些 nuget 包。这个 nuget 也是 netstandard 1.2 版本。

  1. 我可以使用 UWP 项目中的 nuget 包而不添加对它的引用吗?我已经阅读了我可以阅读的地方,但我无法自己阅读。
  2. 如果我只使用创建的 PCL 库中的 nuget 包,则一切正常,但在运行时发现 PCL 抛出异常,无法找到引用的 nuget 库。 nuget 未复制到最终的 bin 目录,因此无法找到。如何处理?我应该从 UWP 项目中引用这个库吗?
  3. 如果我将 nuget 引用添加到 UWP 项目,那么实际引用的 nuget 可能与从 PCL 库引用的库不同,因为 nuget.org 可能会为 UWP 项目和不同的 PCL netstandard1.2 库返回不同的库。因此,在运行时 PCL 库会找到引用的 dll,但这个 dll 不是在适当的版本中。

是我遗漏了什么还是应该这样工作?

所描述的问题是基于通用 windows 平台,但我认为问题更普遍,而不是这个平台。

【问题讨论】:

  • 你的描述很乱。尝试显示一些屏幕截图或给这些“项目”和“包”起有意义的名称以提供帮助。
  • 什么是乱码?我可以提供哪些屏幕截图来可视化问题?问题不在于具体的包,而在于引用库的概念。

标签: .net xamarin uwp portable-class-library .net-standard


【解决方案1】:

我可以使用 UWP 项目中的 nuget 包而不添加对它的引用吗?我已经阅读了我可以阅读的地方,但我无法自己完成它。

据我所知,如果不添加对 Nuget 包的引用,就无法使用它。 Nuget 只需在 .nuspec 文件中添加对这些外部包的引用。如果不想使用 nuget 包,可以直接引用库。你可以在C:\Users\<username>\.nuget\packages\<Destination Package>下找到库

如果我仅从创建的 PCL 库中使用 nuget 包,则一切正常,但在运行时,PCL 会抛出无法找到引用的 nuget 库的异常。 nuget 未复制到最终的 bin 目录,因此无法找到。如何处理?我应该从 UWP 项目中引用这个库吗?

这可能是由多种原因引起的。您能否提供一些重现此问题的步骤?

如果我将 nuget 引用添加到 UWP 项目,那么实际引用的 nuget 可能与从 PCL 库引用的库不同,因为 nuget.org 可能会为 UWP 项目和不同的 PCL netstandard1.2 库返回不同的库。因此,在运行时 PCL 库会找到引用的 dll,但该 dll 不在 apriopuriate 版本中。

请将 PCL 中的库更新为相同版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    相关资源
    最近更新 更多