2016-12-01 77 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中的庫到相同的版本。