提取Burn引导程序的内容

20

我在一个WiX Burn启动器中捆绑了一个MSI包。我能否在目标计算机上从捆绑包中提取这个MSI包呢?

4个回答

36

你需要使用随附于WiX的dark.exe工具。

dark.exe -x temp <installer>

5

在有人实现此功能之前,该捆绑包无法自行提取。


0
你可以在使用自定义启动程序的情况下从您的打包文件中提取嵌入的.msi,并通过使用WiX SDK提取该.msi的内容。
简短的回答是,您可以使用Unbinder类从您的打包文件中提取MSI文件:
unbinder = new Unbinder();
unbinder.Unbind(bundlePath, OutputType.Bundle, tmpFolder);
unbinder.DeleteTempFiles();

然后,使用InstallPackage类来提取文件:

using (var msiPackage = new InstallPackage(msiFilePath, DatabaseOpenMode.Transact) { WorkingDirectory = _targetFolder })
{
  using (var session = Microsoft.Deployment.WindowsInstaller.Installer.OpenPackage(msiPackage, ignoreMachineState: true))
  {
     msiPackage.ExtractFiles(fileKeysToInstall);
  }
  msiPackage.Close()
}

这只是一个非常简化的版本,你需要做的事情要更多。我写了一篇博客文章,详细介绍了这个过程,你可以在这里找到:http://www.wrightfully.com/extracting-msi-files-without-running-the-installer

重要提示:这不会运行任何自定义操作,所以请确保考虑到这一点。


0

提取 WiX 工具集安装 .exe 包非常容易。只需使用来自 WiX Toolset 的 dark.exe 工具即可。

例如:

C:\Program Files (x86)\WiX Toolset v3.11\bin\dark.exe c:\temp\myInstaller.exe -x c:\temp\myInstallerFiles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接