【问题标题】:Can an Assembly contain an exe?程序集可以包含 exe 吗?
【发布时间】:2013-02-28 05:50:40
【问题描述】:

程序集可以包含 exe 吗?

我有一个程序可以生成 exe,但也使用我创建的 .dll。是多文件程序集吗?

编辑:

那么我读到的关于 .NET 中的多文件汇编的内容是什么?这些是否包含 .exe 和 .dll?

【问题讨论】:

  • 程序集可以是 exe 或 dll。
  • 所以程序集是 exe 还是 dll?不是两个?
  • @B-Rad:程序集是磁盘上的文件。

标签: .net


【解决方案1】:

不,如果您有一个 .exe 文件和一个 .dll,那么它们是两个独立的程序集。

如果您只想拥有一个文件,可以尝试使用 ILMerge(direct downloadNuGet)将两者结合起来。

【讨论】:

  • @RobertLevy:谢谢,会添加进去的。
【解决方案2】:

按照 Jon Skeet 的建议使用 ILMerge:

ilmerge.exe /target:winexe /out:bothassemblies.exe assembly1.exe assembly2.dll

【讨论】:

    【解决方案3】:

    This SO post 描述了single-file assemblymulti-file assembly 之间的区别。这是该帖子中的一个 sn-p 来回答您更新的问题:

    问题:

    What is this I read about multi-file assemblies in .NET?

    答案:

    使用命令行编译器,您可以将程序集拆分为多个部分 - 其中单个程序集的清单包含查找属于程序集的信息所需的信息,但存储在单独的文件中。例如,您可以将作为大型资源的资源图像(即:.bmp)保留在其自己的文件中,这样就不必仅仅为了打开程序集而加载它。 Visual Studio 不支持创建多文件程序集,但这些程序集看起来像 DLL 或 EXE,加上零个或多个 netmodule 文件,再加上零个或多个资源文件(可以是任何东西)。主 DLL 或 EXE 包含指定其他文件所在位置的清单。如何:构建多文件程序集详细介绍了构建此程序所需的步骤。

    【讨论】:

      【解决方案4】:

      您可以使用工具 ILMerge 将程序集和 exe 文件合并为一个可执行文件。

      看看this

      【讨论】:

        猜你喜欢
        • 2012-03-23
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-03
        • 2023-03-22
        • 2012-01-22
        相关资源
        最近更新 更多