簡體   English   中英

將 class 庫項目升級到 .net 標准 2.1,其中 .net 框架 4.X 項目已引用該標准

[英]Upgrading class library project to .net standard 2.1 where this has been referenced by .net framework 4.X projects

我們正在升級我們的多個項目的解決方案。 從一個被 13 個項目引用的 class 庫開始。 我需要將我的 class 庫項目.NET Framework 4.5升級到.NET Standard 2.1 這里的問題是:

這個 class 庫被.NET Framework 4.5的項目引用,它的拋出錯誤是它無法訪問.NET Standard 2.1

項目“abc.csproj”以“netstandard2.1”為目標。 它不能被以 '.NETFramework,Version=v4.5' 為目標的項目引用。

如何解決這個問題? 不可能同時升級所有這 13 個項目。


編輯:根據評論,如果我將 lib 轉換為.netstandard1.1 ,那么庫本身就會出現錯誤: 在此處輸入圖像描述

將 lib 降級到.netstandard1.1后,在NetStandard 1.4 之后不允許使用 [DataContract] 裝飾 class 我看到這篇文章並添加了這個 package System.Runtime.Serialization.Primitives 在此處輸入圖像描述

我什至添加了對舊 dll 的引用,但是仍然出現錯誤: 在此處輸入圖像描述

在我們遍歷評論時添加答案。 起初,OP 想將庫的框架更改為.NET Standard 2.1 ,同時在.NET Framework 4.5下擁有其他應用程序。

不幸的是,這是不可能的。 官方文檔中所述, .NET Standard 2.1不遵循.NET Framework 您可以獲得的最新版本是.NET Standard 2.0.NET Framework 4.6.1 此問題的解決方案是將公共庫項目降級到.NET Standard 1.1 ,其他應用程序項目應該能夠鏈接到此。

下一次迭代(在降級到.NET Standard 1.1之后)帶來了與“未知類”和 VS/編譯器要求添加參考相關的問題。 已經存在問題,答案是下載與數據序列化器相關的 NuGet package。

如果最終應用程序中的代碼也使用受影響程序集中的類/屬性,則必須進行清理。 這樣所有代碼都引用了唯一的單一版本的源代碼。 不可能從 Nuget 獲取一個Attribute並檢查“相同屬性/相同名稱”但來自不同來源(系統程序集 - > System.Runtime.Serialization )。

暫無
暫無

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

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