.NET文件夹搜索层次结构是什么?

4

.NET需要加载程序集时,它使用什么文件夹层次结构来搜索程序集? 我假设它从GAC开始,然后是执行程序集的本地文件夹? 完整的层次结构是什么? 我知道Windows搜索路径(对于非托管代码)类似于本地文件夹 / System32文件夹 / 搜索路径/等等。 我正在寻找类似于.NET的东西。

3个回答

4
如果你想要了解过程的描述而不是冗长的MSDN文章链接,这里是步骤的简要概述。你可以在这里找到更多细节。
运行时解析程序集引用的步骤:
  1. 通过检查适用的配置文件确定正确的程序集版本。
  2. 检查程序集名称是否已绑定过,如果是,则使用先前加载的程序集
  3. 检查GAC
  4. 按照以下步骤探测程序集:

    a) 如果配置和发布者策略不影响原始引用,并且使用Assembly.LoadFrom方法创建了绑定请求,则运行时会检查位置提示

    b) 如果在配置文件中找到codebase,则运行时仅检查此位置。

    c) 使用探测部分中描述的启发式方法来探测程序集。如果经过探测后未找到程序集,则运行时请求Windows Installer提供该程序集。这充当了一个按需安装功能。



0
看看这篇文章运行时如何定位程序集
实际上,这不是一条线性路径,它取决于很多因素(程序集是否已加载,配置文件等),但这篇文章非常清晰明了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接