簡體   English   中英

NET Standard 庫可以引用另一個 NET Standard 庫嗎?

[英]Can a NET Standard library reference another NET Standard library?

我繼承了一堆 net framework 4.71 解決方案,以及兩個 net core 2.1 解決方案。

我需要為他們兩個都可以使用的 blob 存儲編寫一個庫。 我發現net framework不會調用net core庫,net core framework也不會調用net framework庫。 所以我正在嘗試幾個網絡標准 2.1 庫。 (一個用於外部模型,一個用於 blob 存儲功能)

我什至還沒有達到確保 net core 和 net framework 項目可以引用 net 標准庫的地步。

問題1)net framework和net core可以參考net標准庫嗎?

問題 2) 有沒有辦法在 net core 和 net framework 之間共享代碼,或者我應該只創建重復的庫?

編輯:我終於弄清楚我在從 blob 存儲網絡標准項目中引用網絡標准 model 項目時做錯了什么。 我不得不直接添加項目引用。 好久沒這么做了。 Visual Studio 會用網絡框架為我添加它。

Edit2:看起來我只是個白痴。 我終於發現我還需要手動將庫的項目引用添加到 net core 項目中。 現在它編譯了。 感謝大家。

網絡標准庫可以引用其他網絡標准庫嗎?

是的; 一個 netstandard2.0 庫可以引用另一個 netstandard2.0 庫; netstandard2.1 庫可以引用 netstandard2.0 和 netstandard2.1 庫

can net framework 和 net core 參考 net 標准庫

.NET 框架 4.7.1據稱可以引用 netstandard2.0 庫,盡管它在一些領域(“不安全”、“緩沖區”等)存在一些裝配綁定重定向問題 - 有些領域只是小故障; 它不能引用 netstandard2.1 庫

.NET Core 可以參考netstandard庫; 這些天你不應該真的看 .NET Core 低於 .NET Core 3.1,這意味着它可以引用 netstandard2.0 和 netstandard2.1 庫

有沒有辦法在網絡核心和網絡框架之間共享代碼,或者我應該只致力於創建重復的庫

如果 netstandard 不適合您,多目標也是一種選擇; 例如,您可以使用<TargetFrameworks>netcoreapp3.1;net471</TargetFrameworks> ,並根據需要使用#if在特定於目標的實現之間切換。

除了 Marc 的出色回答之外,我還想添加.net 標准支持矩陣,該矩陣顯示 .net 版本支持什么 .net 標准版本。

據我了解,預期的遷移策略是這樣的

  1. 將核心庫遷移到 .net 標准 2.0(或更低版本),從依賴項最少的庫開始。
  2. 遷移應用程序、UI 項目和任何其他依賴於 .net 標准之外的項目的項目。
  3. 將核心庫遷移到.Net core或.Net 5。 不會發布新版本的.net標准 因此,要使用任何新功能,庫需要更新為 .net core/5/6 等。

這種方式應該限制需要一次更新的項目數量。 允許零散地完成遷移,而不是一次性完成。

暫無
暫無

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

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