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

时间:2010-11-10 14:53:50

标签: .net windows

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

3 个答案:

答案 0 :(得分:4)

如果您正在寻找流程的描述而不是指向冗长的MSDN文章的链接,那么这是步骤的简要摘要。您可以找到更多详细信息here

运行时的步骤以解析程序集引用:

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

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

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

    c)使用探测部分中描述的启发式探测装配。如果在探测后未找到程序集,则运行时会请求Windows Installer提供程序集。这可用作按需安装功能。

答案 1 :(得分:1)

答案 2 :(得分:0)

请看这篇文章How the runtime locates assemblies

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