加载程序集

时间:2009-10-19 12:18:36

标签: .net asp.net assembly-resolution

有很多讨论展示了如何从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中怎么说呢?我只能添加对物理文件(版本)的引用: - (

2 个答案:

答案 0 :(得分:1)

您可以使用后期绑定和反射。有很多地方可以阅读,但你可以开始here

答案 1 :(得分:1)

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