可能重复:
在编译的可执行文件中嵌入 DLL
我有 ac# winforms 应用程序以及一些依赖的 .dll 和依赖的外部 .exe。
是否有可能以某种方式将它们全部编译成一个可执行文件(不是安装程序),只是独立的可执行文件?
如果可能,从 VS 2010 Ultimate 开始?
可能重复:
在编译的可执行文件中嵌入 DLL
我有 ac# winforms 应用程序以及一些依赖的 .dll 和依赖的外部 .exe。
是否有可能以某种方式将它们全部编译成一个可执行文件(不是安装程序),只是独立的可执行文件?
如果可能,从 VS 2010 Ultimate 开始?
ILMerge是一个实用程序,可用于将多个 .NET 程序集合并为一个程序集。
简而言之:唯一可行的方法是将所有外部文件添加为嵌入式资源并使用ILMerge
.
选项 #1:以下步骤显示如何在 Visual Studio 中嵌入资源文件:
您将在 exe 中拥有该文件引用。稍后您可以在运行应用程序时使用反射并获取资源。从这里借来的源代码:
带有托管 dll 的选项 #2:
对于托管 DLL,您有几个选项:
ILMerge 是一个实用程序,可用于将多个 .NET 程序集合并为一个程序集。ILMerge 采用一组输入程序集并将它们合并到一个目标程序集中。输入程序集列表中的第一个程序集是主程序集。当主程序集是可执行文件时,目标程序集被创建为具有与主程序集相同入口点的可执行文件。此外,如果主程序集具有强名称,并且提供了 .snk 文件,则使用指定的密钥对目标程序集进行重新签名,使其也具有强名称。