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

时间:2017-01-11 22:14:27

标签: c# .net gac

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

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

enter image description here

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

enter image description here

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

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

enter image description here

enter image description here

很抱歉,如果我找不到正确的字词来提问我的问题。 我希望,很明显:))

1 个答案:

答案 0 :(得分:1)

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

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

an excellent video that was posted recently by Immo Landwerth here。我强烈推荐观看它,因为它清楚地解释了一切。