防止压缩Msi外部文件并将其包含在刻录引导程序中

时间:2012-05-14 14:53:45

标签: wix wix3.6 burn

是否可以将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问题,那么我根本不需要这样做! :)

1 个答案:

答案 0 :(得分:4)

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

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

MSI然后选择文件并按预期使用它。

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

希望这有帮助