【问题标题】:MSI built in VS2015/Win10 4mb smaller than VS2010/Win 7 [closed]MSI 内置于 VS2015/Win10 比 VS2010/Win 7 小 4mb [关闭]
【发布时间】:2016-01-28 10:55:17
【问题描述】:

正如标题所说,我在 VS 2015 中构建的 MSI 比我在 VS 2010 中构建的 MSI 小了整整 4mb。除了文件大小不同之外,Win10安装程序似乎只能安装在Win 8+上,在Win7上会出现缺少DLL的错误。我尝试搜索了许多短语,但找不到与我的问题相关的任何内容。任何人都可以对此有所了解吗?任何想法将不胜感激。我可以提供更多信息,但我不确定您需要什么,所以如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: c++ visual-studio-2010 dll mfc windows-installer


    【解决方案1】:

    几个解释:

    1. MSI 文件不是从头开始构建的 - 它们基于用作起点的架构 MSI 文件。如果两个 VS 版本使用不同的架构,您将看到不同的 MSI 文件,尤其是在删除了对旧内容的支持时。

    2. MSI 文件是稀疏文件,而不是连续的数据流。如果更新数据库的机制(即 MSI 文件)不同,则文件结构可能不同,其中未使用的空间更少。

    3. MSI 文件包含您的文件以外的数据。有包含位图的二进制文件、检测 NET 框架的调用、调用托管自定义操作的 C++ Dll,以及两个 Visual Studio 版本之间可能不同的各种东西。此处的任何更改都会更改 MSI 文件的大小。

    这是一个实际问题吗?我怀疑如果有人使用 VS 2010 和 VS 2015 生成一个 100MB 的代码文件,那么没有人会担心它们的大小不同,因为它们是具有不同内部结构的不同编译器。

    【讨论】:

    • 我不太担心大小不同,只是在某些计算机(包括客户端)上,安装程序会失败,说“这个 Windows 安装程序包有问题。无法运行完成此安装所需的 DLL。请联系您的支持人员或软件包供应商,但没有指明是哪个 DLL 文件。但它可以在我的电脑和其他一些电脑上运行。
    • 这是您应该发布的问题。它不会与大小有关。如果您添加了自定义操作,它们可能会缺少对某些机器的依赖。使用详细日志进行安装并查找错误: msiexec /I [path to msi file] /l*vx [path to a text log file]
    • 谢谢你,我遇到的最大问题是错误信息太少,我不知道从哪里开始。
    猜你喜欢
    • 2017-10-10
    • 2011-04-24
    • 2012-06-14
    • 2015-11-22
    • 2017-01-08
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多