【问题标题】:Can I change the already referenced DLL's path?我可以更改已经引用的 DLL 的路径吗?
【发布时间】:2018-07-16 06:56:29
【问题描述】:

我正在寻找一种无需使用Assembly.LoadFrom.Load 即可更改DLL 路径的方法。

我无法更改代码,它已经引用了像Namespace.Class.Method 这样的DLL。有没有办法更改该 DLL 的路径并告诉 .net 使用新路径查找它?新路径是已知的,所以我只需要一种方法将其指向那里。

任何帮助将不胜感激。

提前谢谢你。

【问题讨论】:

    标签: c# .net dll .net-assembly


    【解决方案1】:

    如果路径已经被硬编码,我看不出如何在不编辑代码的情况下更改它,但也许还有另一种选择:

    如果您在 全局程序集缓存(“GAC”)中有正确的 dll 文件(.net 引用的正确名称和版本号),那么 .NET 可能从那里加载它。

    我说它可能这样做,因为如果您直接从代码中显式加载 dll,我不确定它是如何工作的。但是,如果程序集只是通过名称/命名空间以正常方式引用,it should search for the library in the gac first

    无论如何可能值得一试。您可以在以下地址找到您的 GAC:%windir%\Microsoft.NET\assembly

    【讨论】:

    • 像你说的那样被引用。我要做的就是让 .NET 也搜索我指定的目录。我希望这是有道理的。
    • 在那种情况下,我怀疑它是否可以在不更改源代码的情况下完成。太糟糕了,它是硬编码的 - 在配置文件中指定它可能是一个更好的主意,它可以更容易地更改......
    • 如何在配置文件中指定它?对不起,我是一个新手。
    • 再次,您将不得不更改源代码;如果您定义某种配置文件(例如app.config),您可以从那里读取路径,并将其作为变量传递给.Net(Assembly.LoadFrom),而不是对其进行硬编码;但是如果如您所说,您无法更改代码,那么这对您没有帮助,对不起!
    猜你喜欢
    • 2014-07-10
    • 2012-03-20
    • 1970-01-01
    • 2017-11-22
    • 2021-06-28
    • 1970-01-01
    相关资源
    最近更新 更多