比MSM大微星两倍(Msi two times larger than msm)

2019-10-20 21:06发布

我有100MB的的.msm,当我建立我的WiX的项目中,我得到200MB这里是一些代码的的.msi:

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"  />

<Media Id="1" Cabinet="product.cab" EmbedCab="yes" />

<Directory Id="TARGETDIR" Name="SourceDir">
  <Merge Id="MyMsmFile" Language="1033" SourceFile="msm\MyMsmFile.msm" 
         DiskId="1" FileCompression="yes" />
  <Directory Id="INSTALLFOLDER" Name="Foo" >
  </Directory>
</Directory>

<Feature Id="Foo_client" Title="Foo Client" Level="1" 
         ConfigurableDirectory="INSTALLFOLDER" >
  <Feature Id="Server" Title="Foo Server" Level="32767">
    <MergeRef Id="MyMsmFile"  />
  </Feature>
</Feature>

编辑:

请注意,CompressionLevel =“高”在<新闻>需要的.msi从200MB到180MB

这就像我看到的.msm用7z格式的内容(看起来像!前缀和一个叫MergeModule.CABinet和其他文件ORCA表)。

这就像我看到的.msi用7z格式的内容(文件名)。

编辑2:

它看起来像我,包括MSM 2倍。 如果我设置EmbedCab =“没有”我的MSI仍超过100MB加上product.cab的100MB。

请看看这个修改后的代码:

  <Product Id="PUT-GUID-HERE"
       Name="MyProduct"
       Language="1033"
       Version="0.0.1"
       Manufacturer="MyCompany"
       UpgradeCode="PUT-GUID-HERE">

    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
    <Media Id="1" Cabinet="product.cab" EmbedCab="no" CompressionLevel="high"  />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

    <UIRef Id="WixUI_FeatureTree" />

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="INSTALLFOLDER" Name="MyProduct" >
        <Merge Id="ThirdPartModule" Language="1033" SourceFile="ThirdPartModule.msm" DiskId="1" />
      </Directory>
    </Directory>

    <Feature Id="Server" Title="MyProduct Server" Level="1" >
      <MergeRef Id="ThirdPartModule"  />
    </Feature>
  </Product>

这是一个的VisualStudio 2012项目 - 发行 - 64。

最后...

我选择去与烧伤引导程序的项目,遗憾的混乱:d

Answer 1:

所以,当你设置压缩高MSI为100MB或大约相同大小的.msm? 所以,这里有什么问题吗?

合并进程从MSI中提取文件并将其放置到MSI。 如果MSM有较高的压缩设置,则MSI你可以期望的封装尺寸扩大。



Answer 2:

正如克里斯说,你可以尝试启用高压缩,如下图所示:

<Media Id="1" Cabinet="product.cab" CompressionLevel="high" EmbedCab="yes" />

阅读媒体元素的文档以获取更多信息。 “高”压缩设置让LZX据我知道的,而不是MSZIP格式。

这里是信息后上可用于MSI的不同的压缩级别: 什么是MSI文件中使用的压缩方法?


一些链接

  • 什么是MSI文件中使用的压缩方法?
  • http://wixtoolset.org/documentation/manual/v3/xsd/wix/media.html


文章来源: Msi two times larger than msm