.NET Core 6多程序集路径配置:静态链接库相对路径失效求助
.NET Core 6 静态链接共享程序集路径解析问题
问题背景
- 正在进行.NET Core 6应用迁移,共享程序集部署在主程序集的独立路径下
- 共享程序集为静态链接,无法通过
AssemblyLoadContext或AppDomain扩展程序集解析流程 - 尝试通过
runtimeconfig.json配置APP_PATHS,但该配置仅支持绝对路径,而目标机器的具体路径无法提前确定;使用相对路径(含子路径)会直接触发运行时创建失败异常,不清楚是否有相对路径的特定语法 - 限制条件:无法修改现有部署结构或流程
可行解决思路
- 订阅
AssemblyLoadContext.Default.Resolving事件,在回调中根据相对路径逻辑定位共享程序集文件,手动完成加载 - 关键注意点:必须在静态Main方法的最开始位置完成事件订阅,避免静态构造函数提前触发程序集加载,导致事件订阅未生效
已验证的解决方案
更新:通过订阅
AssemblyLoadContext.Default的解析事件,确保订阅逻辑在静态Main方法执行阶段完成,避开静态构造函数的干扰,问题已解决。
内容的提问来源于stack exchange,提问作者Sess
相关产品推荐
相关产品推荐

