首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取Burn bootstrapper的内容

提取Burn bootstrapper的内容
EN

Stack Overflow用户
提问于 2014-11-05 11:28:36
回答 4查看 9.9K关注 0票数 16

我有一个捆绑在WiX刻录引导程序中的微星程序包。我可以从目标机器上的捆绑包中提取此MSI吗?

EN

回答 4

Stack Overflow用户

发布于 2014-11-05 12:02:56

您需要使用WiX附带的dark.exe实用程序。

代码语言:javascript
复制
dark.exe -x temp <installer>
票数 31
EN

Stack Overflow用户

发布于 2014-11-05 12:20:33

在有人实现this feature之前,捆绑包不能自解压。

票数 5
EN

Stack Overflow用户

发布于 2014-11-05 23:41:54

如果您使用的是自定义引导程序应用程序,则可以在运行时从捆绑包中提取嵌入式.msi,然后使用WiX SDK提取该.msi的内容。

简而言之,您可以使用Unbinder类从捆绑包中提取MSI文件:

代码语言:javascript
复制
unbinder = new Unbinder();
unbinder.Unbind(bundlePath, OutputType.Bundle, tmpFolder);
unbinder.DeleteTempFiles();

然后,使用InstallPackge类提取文件:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26749207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档