我有一个c#winforms应用程序以及一些依赖的.dll和一个依赖的外部.exe。
是否有可能以某种方式将所有这些应用程序合并为一个可执行文件(而不是安装程序)?
如果可能的话,从VS 2010 Ultimate?
答案 0 :(得分:1)
ILMerge是一个实用程序,可用于将多个.NET程序集合并到一个程序集中。
答案 1 :(得分:1)
简而言之:唯一可行的方法是将所有外部文件添加为嵌入资源并使用ILMerge
。
选项#1:以下步骤显示了如何在Visual Studio中嵌入资源文件:
您将在exe中包含该文件引用。稍后您可以使用Reflection并在运行应用程序时获取资源。来自here的借用源代码:
带有托管dll的选项#2 :
对于托管DLL,您有几个选项:
查看以下CodeProject article that explains this。
ILMerge是一个实用程序,可用于将多个.NET程序集合并到一个程序集中。 ILMerge接受一组输入程序集并将它们合并到一个目标程序集中。输入程序集列表中的第一个程序集是主程序集。当主程序集是可执行文件时,目标程序集将创建为具有与主程序集相同的入口点的可执行文件。此外,如果主程序集具有强名称,并且提供了.snk文件,则使用指定的键重新签名目标程序集,以使其具有强名称。
答案 2 :(得分:-1)
如果你有源代码,你可以在你的表单应用程序类中包含你的DLL内容并重新编译它,你将得到单个exe