我工作的一个模块,用于CMS。该模块分布作为一类库DLL。

我有几个实用工具库,我想到使用这个模块。有,反正我可以链接,这些图书馆静态的,所以我不需要分发的几个DLL's(从而分发的我的实用工具库单独)?

我想只有一个DLL。

有帮助吗?

解决方案

你可以合并你的许多Dll与ILMERGE:

http://research.microsoft.com/~mbarnett/ILMerge.aspx

没有尝试过自己。希望这有所帮助。


从这里下载:
http://www.microsoft.com/downloads/details.aspx?familyid=22914587-B4AD-4EAE-87CF-B14AE6A939B0&displaylang=en

简短的说明 (从下载的页)
ILMerge是一个实用工具,用于合并多个。网组成一个单一的。净件。它适用于可执行文件和Dll都带有几种选择控制的处理和格式的输出。见所附文件的详细信息。

其他提示

如果你不想使用ILMerge,看这页:

http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

编者注:杰弗里*里希特建议,把你的dll入文件作为资源(每个DLL文件增加,显示其性质和改变其"建立行动"的"埋入的资源"。).然后一个定义类机是需要作出可执行的工作(在运行时,CLR不能找到依赖DLL集会,这是一个问题。为了解决这个问题,当应用程序初始化,注册一个回调的方法与程序域的ResolveAssembly事件).

一定要改变 resourceName 串来点实际的资源。(例如改变 AssemblyLoadingAndReflection 到项目的名字.)

简短的回答是没有!你不能链接在一dll在汇编。我不知道是否有一些微妙的方式来做到这一点,但是你可能会有分发dll沿着与你cms。最好的方式来做到这一点是使某种重新分配的.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top