gpt4 book ai didi

c# - 加载程序集及其依赖项

转载 作者:IT王子 更新时间:2023-10-29 04:34:54 25 4
gpt4 key购买 nike

我的应用程序在运行时从特定子文件夹动态加载程序集。这些程序集在编译时依赖于其他程序集。运行时尝试从应用程序目录加载这些。但是我想把它们放到模块目录中。

有没有办法告诉运行时 dll 位于单独的子文件夹中?

最佳答案

我最近使用的一个很好的方法是为 AppDomain 的 AssemblyResolve 事件添加一个事件处理程序。

AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);

然后在事件处理程序方法中,您可以加载尝试使用 Assembly.Load、Assembly.LoadFrom 重写之一解析的程序集,并从该方法返回它。

编辑:

根据您的附加信息,我认为使用上述技术,专门解决对程序集的引用是唯一真正可行的方法,无需重构您的应用程序。它给你的是,CLR 无法解析的每个程序集的位置都可以在运行时由你的代码确定和加载......我在类似的情况下使用了它,用于可插拔架构和程序集引用完整性扫描工具。

关于c# - 加载程序集及其依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com