簡體   English   中英

.NET標准庫能否以某種方式使用支持.NET Framework 4.6.1的nuget包

[英]Can .NET standard libraries somehow consume nuget packages, which support .NET Framework 4.6.1

我正在將基於C#net461的庫轉換為netstandard2。 該庫的一些依賴性最多支持net461。 Visual Studio為這些依賴項顯示以下警告:

警告NU1701程序包“IKVM v8.1.5717”使用“.NETFramework,Version = v4.6.1”而不是項目目標框架“.NETStandard,Version = v2.0”進行了恢復。 此軟件包可能與您的項目不完全兼容。

無論如何要將這些依賴項合並並成功移植到netstandard2?

我環顧四周,嘗試了Microsoft.Windows.Compatibility nuget。 將其作為對新netstandard2庫項目的進一步依賴添加后,警告仍然存在,並且'bin / debug / netstadard2'中的構建輸出不包含nuget依賴項的dll。 正如預期的那樣,當嘗試從另一個項目中使用庫時,我得到netstandard2庫的net461依賴項的缺失DLL的運行時異常。

經過大量的實驗和搜索,我發現問題是雙重的:

  1. net461依賴項具有netstandard 2.0未涵蓋的API,這會導致運行時錯誤。
  2. 作為傳遞依賴,構建期間不包括net461依賴項的DLL。

在我的例子中,問題#1通過包含windows兼容包來解決,其中包括我使用的net461依賴項的額外API。 但由於問題#2,我仍然遇到運行時異常。

問題#2通過確保所有導入使用PackageReference樣式來解決,該樣式提取了傳遞依賴性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM