我有一个用 C# 开发的应用程序,它可以做一些事情。我决定嵌入一个我想在一个过程中被调用的 .msiexecutable 大小在 5MB 左右,.msi 大小在 150MB 左右。但是当编译带有嵌入式 .msi 的新可执行文件时,现在是 400MB!

为什么是这样?嵌入资源是否会增加最终的 .exe 大小?

最佳答案

由于用户发布的 here ,我最终得出了一个结论。

当我添加我的 .msi 作为资源时,我最后有同一个文件的两个副本。这就是为什么我将最终可执行文件的大小加倍。

  • 我的 .msi 的一份副本,因为它作为资源链接到我的项目
  • 另一个副本是因为项目的编译链接了它的另一个副本

  • 所以我做了以下事情:
  • .msi
  • 中删除 Resources
  • 在我想要的文件夹上,我通过简单地调用 Add->Existing Item
  • 来添加它
  • 然后我将 Build action.msi 更改为 Embedded Resource 并将其嵌入到我的应用程序中,但它没有被调用两次,因为它不被视为 Resource

  • 或多或少这就是答案。

    关于c# - 嵌入资源大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30749898/

    10-14 22:49