gpt4 book ai didi

c# - 动态加载引用其他 DLL 的 DLL

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:18 24 4
gpt4 key购买 nike

我在 C# .Net 4.0 中工作

我有以下架构部分:

  1. 三个“通用”DLL:X.dll、Y.dll 和 Z.dll
  2. 一个引用“一般”DLL 的“特定”DLL (A.dll)
  3. 一个动态加载 A.dll 的 C# 应用程序(我使用 System.Reflection.Assembly ass = Assembly.LoadFrom(filename))

由于应用程序没有显式引用那些“通用”DLL,因此出现异常。

所以我的问题是是否有机会创建 A.dll 以允许加载此 DLL 而无需加载那些“通用”DLL。似乎我无法在不记住它引用的所有 DLL 的情况下传输我的 A.dll。

我相信在 C# 4.0 中完成它的方式背后有一个很好的逻辑,但也许有一些异常(exception)?

感谢您的帮助!

最佳答案

这里的问题是您的应用程序仅加载 A.dll 因此这是唯一复制到输出目录中的 DLL,因此当 A 尝试从 访问代码时X 它失败了,因为应用程序不知道 X 在哪里,因此无法加载它。

此处最简单的解决方案是将其他“通​​用”DLL 安装到 GAC 中。 .或者,只需将“通用”DLL 与您的应用程序一起发送,因为除非您无论如何都使用 A 否则它们不会被加载,但是,如果它们不使用,它们对您的安装/应用程序大小来说是不必要的膨胀需要。

关于c# - 动态加载引用其他 DLL 的 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19728943/

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