有时候我们在发布程序的时候只想发布一个EXE,而编写程序的时候往往会有多个DLL,这个时候如果能把这些DLL装进EXE将是一个很令人振奋的事情,事实上对于C#程序有很多方法如下:
1. 使用微软的ILMerge(缺点:不支持WPF程序);
2. 将DLL添加到EXE的资源(http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx);
3. 使用开源工具Fody/Costura(https://github.com/Fody/Costura#how-it-works),其原理同方法2;
4. 使用其他工具;
5. 更多讨论请见http://stackoverflow.com/questions/3371583/serious-trouble-with-ilmerge-and-net-4-0。
1. 使用微软的ILMerge(缺点:不支持WPF程序);
2. 将DLL添加到EXE的资源(http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx);
3. 使用开源工具Fody/Costura(https://github.com/Fody/Costura#how-it-works),其原理同方法2;
从NuGet安装Costura.Fody(NuGet安装方法:http://docs.nuget.org/docs/start-here/installing-nuget,然后在VS的工具菜单就可以看到NuGet程序包管理器,打开其控制台,然后输入命令如下:
PM>Install-Package Fody -Version 1.24
PM> Install-Package Costura.Fody
注意:在VS2015中,Fody必须使用1.24版本,使用最新的版本会编译出错。
4. 使用其他工具;
5. 更多讨论请见http://stackoverflow.com/questions/3371583/serious-trouble-with-ilmerge-and-net-4-0。