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

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

如果您正在寻找过程的描述而不是漫长的MSDN文章的链接,这是对步骤简要总结 。 你可以在这里找到更多的细节。

运行时遵循以下步骤来解析程序集引用:

  1. 通过检查适用的配置文件来确定正确的程序集版本
  2. 检查程序集名称是否已被绑定到之前,如果是,则使用先前加载的程序集
  3. 检查GAC
  4. 按照以下步骤组装的探针:

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

    b)如果在配置文件中找到代码库 ,运行时只检查这个位置。

    c)使用探测部分描述的启发式方法进行装配的探针 。 如果在探测之后找不到程序集,则运行时会要求Windows安装程序提供程序集。 这充当按需安装功能。

看看这篇文章运行时如何查找程序集 。

它实际上不是一个线性路径,它取决于很多(程序集已经加载,配置文件,…),但文章是非常清楚的。