簡體   English   中英

為什么Dot Net Core類庫或控制台應用程序可以引用Dot Net 4.6類庫?

[英]Why an Dot Net Core Class Library or Console App Can Reference A Dot Net 4.6 Class Library?

我在Google上進行了搜索,並獲得了以下知識:

  1. Net Core和Net Framework(4.6。*)是.NET運行時的兩種不同實現,它們是平台
  2. .NET標准定義了.NET平台同意實現的一組API,但它不是運行時

因此,我完全理解NET Core控制台應用程序和NET 4.6.1控制台應用程序都可以添加對某個.NET標准庫的引用,只要它們兼容即可。

讓我感到困惑的是

  1. Net Core 1.1控制台應用程序可以添加對4.6.1類庫的引用,並且運行良好
  2. 4.6.1控制台應用程序不能添加對Net Core 1.1類庫的引用。

我在VS2017 15.3上進行了測試,我知道有人在討論如何在Core應用中添加對4.6.1 dll的引用,但是所有這些都在談論舊的核心項目(使用project.json),因為該項目已經過時了官方RTM VS2017。 為什么1可以,而2不能?

謝謝

這樣做是為了允許重新使用現有項目和預構建程序集(dll文件),前提是它們僅使用.NET Standard 2.0中的API(類型,方法等)。

您說對了,這似乎是違反直覺的,並且“不應該工作”。 但是,加載.NET Framework程序集的兼容性層很小,但是如果它們使用不受支持的API則它們可能會失敗 ,因此使用此兼容性機制很危險,因此應使用.NET Portability來檢查項目/程序集。 分析儀

暫無
暫無

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

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