2016-12-01 52 views
1

我对netstandard库的使用有疑问: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不是在apriopriate版本。

我错过了什么,或者它应该像那样工作吗?

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

+0

你的描述很混乱。尝试显示一些屏幕截图或给那些“项目”和“包”提供有意义的名称来提供帮助。 –

+0

什么是混乱?我可以提供什么屏幕截图来可视化问题?问题不在于具体包,而是关于引用库的概念。 – raV720

回答

1

我可以使用UWP项目中的nuget包而不添加引用吗?我已经在某个地方看过了,但我无法自己完成。

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

如果我使用NuGet包只能从创建PCL库,然后一切都建立好,但在运行时事实证明,PCL抛出找不到引用的NuGet库例外。 nuget未被复制到最终的bin目录,所以无法找到它。如何处理?我应该从UWP项目中引用此库吗?

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

如果我添加的NuGet参考UWP项目则实际引用的NuGet可从PCL库引用的库不同,因为nuget.org可能返回UWP项目和dfifferent PCL netstandard1.2库不同的库。所以在运行时PCL库会找到引用的DLL,但这个DLL不是在apriopriate版本。

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