.Net Framework 引用路径与加载程序集路径

.Net Framework references path vs Loaded Assembly Path

我对 .Net Framework 的程序集有点困惑。

当我查看从我的控制台应用程序引用的框架 dll 时,它显示了 .net 框架路径 (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2)

当我在调试中查看显示程序集和程序集加载路径的模块 window 时,它显示了 GAC。

所以我的问题是,如果它从 GAC 加载程序集,为什么它显示从 .Net 框架路径引用的路径,这个路径的作用是什么? (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2)

在 csproj 文件中没有 .Net Framework 程序集的路径。 当我想从框架中添加一个新程序集时,该程序集从哪个路径检索以显示在下面 window ?

抱歉,如果我找不到正确的词来问我的问题。 我希望,很清楚:)

参考程序集供您参考和编译。它们仅包含签名,它们作为 .NET Targeting Pack 和 SDK 的一部分安装。

框架程序集是在运行时使用的,并且有实际的实现。它们是在运行时绑定的并且具有向后兼容性,因为它们可能是构建时目标框架的更新版本。

an excellent video that was posted recently by Immo Landwerth here个。我强烈推荐观看它,因为它解释得很清楚。