Visual Studio 2010 EXE打包

时间:2013-01-09 03:25:38

标签: c# winforms visual-studio

  

可能重复:
  Embedding DLLs in a compiled executable

我有一个c#winforms应用程序以及一些依赖的.dll和一个依赖的外部.exe。

是否有可能以某种方式将所有这些应用程序合并为一个可执行文件(而不是安装程序)?

如果可能的话,从VS 2010 Ultimate?

3 个答案:

答案 0 :(得分:1)

ILMerge是一个实用程序,可用于将多个.NET程序集合并到一个程序集中。

答案 1 :(得分:1)

简而言之:唯一可行的方法是将所有外部文件添加为嵌入资源并使用ILMerge

选项#1:以下步骤显示了如何在Visual Studio中嵌入资源文件:

  1. 转到解决方案资源管理器,
  2. 右键单击资源文件
  3. 转到构建操作:选择嵌入式资源。
  4. 您将在exe中包含该文件引用。稍后您可以使用Reflection并在运行应用程序时获取资源。来自here的借用源代码:

    带有托管dll的选项#2

    对于托管DLL,您有几个选项:

    • 使用ILMerge。 ILMerge有一个很好的GUI界面,可以在[这里] 7]
    • 找到
    • 将它们作为资源使用,有关详细信息,请参阅this article

    查看以下CodeProject article that explains this

      

    ILMerge是一个实用程序,可用于将多个.NET程序集合并到一个程序集中。 ILMerge接受一组输入程序集并将它们合并到一个目标程序集中。输入程序集列表中的第一个程序集是主程序集。当主程序集是可执行文件时,目标程序集将创建为具有与主程序集相同的入口点的可执行文件。此外,如果主程序集具有强名称,并且提供了.snk文件,则使用指定的键重新签名目标程序集,以使其具有强名称。

答案 2 :(得分:-1)

如果你有源代码,你可以在你的表单应用程序类中包含你的DLL内容并重新编译它,你将得到单个exe