簡體   English   中英

為什么 .NET 框架項目可以作為參考添加到 .NET 標准 2.0 項目中?

[英]Why .NET framework project can be added as reference in .NET Standard 2.0 project?

While doing some conversion of .NET Framework 4.6.2 project into .NET Standard project, I noticed that I could add .NET Framework project reference in the .NET Standard project, which doesn't sound correct theoretically.

為什么 .NET 框架項目可以作為參考添加到 .NET 標准 2.0 項目中?

當您擁有 .NET 標准項目時,它是根據 netstandard.dll 編譯的。 .NET Framework 和 .NET Core 都具有 netstandard.dll(它提供類型轉發到 mscorlib.Z06416233FE5EC4CAF133122)。 這就是為什么您可以在 .NET 核心和 .NET 框架中使用 .NET 標准項目的原因。

那么當您的 .NET 標准項目引用 .NET 框架項目(針對 mscorlib.dll 編譯)時會發生什么?

如果您有參考鏈.NET 框架 -> .NET 標准 -> .NET 框架,那么根本沒有問題,因為在運行時您有 mscorlib.Z064316233E.4AB2485 所需的所有類型。

但是.NET 核心 -> .NET 標准 -> .NET 框架參考呢? 在運行時,您只有 System.Runtime.dll。 .NET 標准項目沒有問題,因為 netstandard.dll 將類型轉發到 System.Runtime.dll。 但訣竅是.NET 核心也有 mscorlib.dll ,是的。 它也只是類型轉發到 System.Runtime.dll 類型。 一切正常。 ...除非您將使用 System.Runtime.dll 中不存在的某些 .NET 框架類型。

進一步閱讀:.NET 框架兼容性墊片

暫無
暫無

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

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