You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET dll查找依赖程序集的路径规则是什么

.NET 程序集依赖加载查找路径说明

.NET运行时加载依赖DLL不会仅检索全局程序集缓存(GAC),本地目录是默认的核心查找位置,常规加载顺序如下:

  • 全局程序集缓存(GAC)检索:仅强命名签名的程序集会走这一步校验,如果GAC中存在版本、公钥标记完全匹配的目标依赖,会直接加载,不再执行后续路径查找。注意普通未签名的业务DLL根本不会进入GAC查找流程。
  • 应用程序基础目录检索:这是私有依赖最常用的查找位置,既包括主执行程序(exe)所在的根目录,也包括被加载的DLL自身所在的同级目录。你把XYZ.dll复制到ABC.dll同级目录后注册成功,就是命中了这个默认查找规则。
  • 配置指定的附加路径检索:如果在应用配置文件(App.config/Web.config)中通过<probing>节点配置了私有子目录路径,运行时会按配置顺序到对应子文件夹查找依赖;如果是反射加载、插件化场景,还可以通过注册AssemblyResolve事件在代码中自定义依赖解析逻辑,指定任意位置的依赖文件加载。

针对你提到的InstallShield打包后ABC.dll注册失败的问题:

故障根因是打包阶段没有将ABC.dll的私有依赖XYZ.dll纳入安装包的部署文件清单,导致安装完成后ABC.dll所在目录缺失对应依赖,注册时加载程序集触发依赖查找失败。不需要强行将这类业务私有依赖注册到GAC,只要在InstallShield的打包文件列表中手动添加XYZ.dll,保证其和ABC.dll部署在同一目录下即可稳定解决问题。

内容的提问来源于stack exchange,提问作者TheDarkDefender

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 23:24:14