日期:2014-05-18  浏览次数:20825 次

C# dll 如何编译到exe里面去。
做了个winform程序,写了个自定义控件,最后的程序是一个exe和一个dll。但是是个小程序,完全没有必要多包含一个dll,如何将这个dll编译到exe里面去只生成一个exe呢?

------解决方案--------------------
直接来肯定是不行。貌似哪种语言也没这个功能。
DLL 叫做动态链接库。顾名思义,动态链接。都做到exe里,那就是lib了。

实现方法。1.第三方工具。貌似很多,不过都不咋好用,容易被报病毒木马什么的。
2.反编译dll,直接把代码加到exe工程里去。貌似不厚道。如果自己写的,就没什么了。
------解决方案--------------------
C#本来就是静态加载的。
你说的C++的那个是引用的类库,直接把类库编译到C++的exe里了。
那个类库不是dll,好像是lib。

有方法可以把dll编译到exe里的资源中,使用时,直接就可以调用,不用另外生产个dll。
但是,这个办法在delphi里见人用过。在C#里没见过。
------解决方案--------------------
.exe .dll 是和你建立的项目有关的。
.exe是应用程序项目。
.DLL一般是类库项目。
你打问题也很模糊,一般是自定义的控件的话,就是做成DLL可以被引用就可以了。
------解决方案--------------------
ILMerge.exe可以合并多个assembly
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17630

C++的静态调用?你是指引入库或者静态链接吧。C#在需要的时候加载dll,行为类似于引入库
------解决方案--------------------
http://www.cnblogs.com/huangcong/archive/2010/03/29/1699904.html

楼主,这个就是你想要的东西,C#版ILMerge-GUI,可将所有引用的DLL和exe文件打成一个exe文件。