将.net dll依赖关系添加到项目

问题描述:

我使用软件供应商的API针对CMS服务器创建.net网站。将.net dll依赖关系添加到项目

问题是,对于CMS软件的每个版本,我都有不同的DLL(大多数是未版本化的),我必须处理。

所以,现在我正在构建一些依赖于这些DLL的可重用服务器组件,但是因为我想用不同的DLL版本针对不同的网站使用这些组件,所以我需要想出一种切换依赖关系的方法。

是否有可能将所有依赖包绑定到一个DLL中(并保留原来的名称空间)?

微软研究院的ILMerge,允许你将多个程序集合并为单个并保留原始的命名空间。

+0

该工具做得非常出色。有几个组件无法合并,但看起来很有前途。 – Pablo 2009-07-20 09:11:31

如果存在名称空间冲突,则最终可能会被迫动态加载DLL。你可以使用Assembly类和一些反射来获得适当的入口点。

简而言之,你不会依赖于API编译时间,而是使自己的包装,实现使用动态(通过反射)调用DLL的调用封装。我确信在C#4.0中这很容易,但它在1.0中也可以正常工作。