【问题标题】:Preventing Msi external file from being compressed and included into burn bootstrapper防止 Msi 外部文件被压缩并包含到刻录引导程序中
【发布时间】:2012-05-14 14:53:44
【问题描述】:

是否可以将 Msi 包包含到引导程序中,但不能包含任何外部文件?

所以我的 msi 安装程序有一个文件:

<Component Directory="INSTALLDIR">
    <File Id="DatabaseBackup"
          Name="Database.bak"
          Source="Database.bak"
          Compressed="no" />
  </Component>

哪个输出:

  • Installer.msi
  • Database.bak

现在,如果我将刻录链设置为包含 msi 包:

<MsiPackage SourceFile="$(var.Installer.TargetPath)" />

“Database.bak”文件也被压缩到生成的 exe 中。是否可以压缩 msi 而不是 .bak 文件?

如果没有人可以比我更好地回答this 问题,那么我根本不需要这样做! :)

【问题讨论】:

    标签: wix wix3.6 burn


    【解决方案1】:

    我为此目的使用了 Payload 元素...在您的示例中,我会将 MsiPackage 元素更改为:

    <MsiPackage SourceFile="$(var.Installer.TargetPath)" >
      <Payload Compressed="no" SourceFile="{path_to_bak_file}\Database.bak"  />
    </MsiPackage>
    

    然后 MSI 拾取文件并按预期使用它。

    我还没有找到一种方法来使这个有条件或灵活..在我的情况下,它是一个不重要的配置文件,但我的设置现在失败(首先打开一个文件打开对话框来查找该文件),如果文件丢失 - 当然这取决于我创建的 MSI 的详细信息。

    希望对你有帮助

    【讨论】:

    • 谢谢,这似乎是合理的,没想到那样做。不幸的是,我现在不使用这种方法,而是从脚本和 bcp 导入构建数据库,而不是手动创建备份然后包含它。这实际上是一种更好的方法,因为我得到了更好的压缩,但是当我有机会时,我会验证你的答案是否有效。再次感谢! :)
    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多