有很多讨论展示了如何从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中怎么说呢?我只能添加对物理文件(版本)的引用: - (
答案 0 :(得分:1)
您可以使用后期绑定和反射。有很多地方可以阅读,但你可以开始here。
答案 1 :(得分:1)
如果我理解正确,我猜你可以使用“插件”方式通过AppDomain对象做事。也许通过AppDomain加载程序集,因为您可以设置加载程序集的路径,您将能够轻松替换文件,卸载程序集并在ShadowCopy中重新加载新程序集。 ShadowCopy允许您在当前文件程序集的相同位置复制最新文件。然后,构建机制以检查新文件,如果存在,则卸载程序集并重新加载最新文件。这样,一切都将对您的程序非常透明,尽管它需要您的身边更多的编程。然而,你将获得长期发展。