【问题标题】:Loading Assemblies加载程序集
【发布时间】:2009-10-19 22:51:57
【问题描述】:

有很多讨论表明如何从 BIN 和 GAC 加载程序集...我的问题更笼统,我很想知道程序集加载是如何工作的。

例如

在BIN文件夹中我们可以有

A.dll
A.dll.config 

A.dll.config 文件可能如下所示:

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

帮助我们设置正确的程序集引用。

我想知道如何创建一个需要 B.dll 但没有指定任何版本的 A.dll,所以如果总是采用 BIN 文件夹中的 B.dll。

我的问题是关于 SDK 的更新,我的所有代码仍然指向旧的 SDK 版本,我想让我的程序集查找资源的所有版本中的最高版本,BIN 或 GAC 并使用那个。 ..

我怎么能在 Visual Studio 中这么说?我只能添加对物理文件(版本)的引用:-(

【问题讨论】:

    标签: .net asp.net assembly-resolution


    【解决方案1】:

    如果我理解正确,我想你可以通过 AppDomain 对象使用“插件”的方式来做事。也许通过 AppDomain 加载程序集,因为您可以为加载的程序集设置路径,您将能够轻松地替换文件、卸载程序集并在 ShadowCopy 中重新加载新的程序集。 ShadowCopy 允许您将最新文件复制到当前文件程序集的相同位置。然后,建立你的机制来检查一个新文件,如果它存在,然后卸载你的程序集并重新加载最新的。这样,您的程序的一切都将是非常透明的,尽管它需要您进行更多的编程。不过,您将在长期发展中获益。

    【讨论】:

      【解决方案2】:

      您可以使用后期绑定和反射。有很多地方可以阅读这方面的内容,但您可以从 here 开始。

      【讨论】:

        猜你喜欢
        • 2021-03-02
        • 2012-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多