3

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

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

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

输出:

  • 安装程序.msi
  • 数据库.bak

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

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

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

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

4

1 回答 1

4

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

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

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

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

希望这可以帮助

于 2012-08-21T02:50:03.767 回答