在C#中静态链接

时间:2020-03-05 18:46:20  来源:igfitidea点击:

我正在为CMS开发模块。该模块作为类库DLL分发。

我想在此模块中使用几个实用程序库。无论如何,我可以静态链接这些库,这样就不必分发多个DLL(从而分别分发实用程序库)了吗?

我只想拥有一个DLL。

解决方案

回答

简短的答案是没有!
我们不能在编译过程中链接dll。
我不知道是否有一些微妙的方法可以做到这一点,但是我们可能必须将dll与cms一起分发。
最好的方法是进行某种可重新分配。

回答

我们可以使用ILMERGE合并许多DLL:

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

我自己还没有尝试过。希望能帮助到你。

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

简要说明(从下载页面)
ILMerge是用于将多个.NET程序集合并到单个.NET程序集中的实用程序。它适用于可执行文件和DLL,并且具有用于控制输出的处理和格式的几个选项。有关详细信息,请参见随附的文档。