我有一个捆绑在WiX刻录引导程序中的微星程序包。我可以从目标机器上的捆绑包中提取此MSI吗?
发布于 2014-11-05 12:02:56
您需要使用WiX附带的dark.exe实用程序。
dark.exe -x temp <installer>发布于 2014-11-05 12:20:33
在有人实现this feature之前,捆绑包不能自解压。
发布于 2014-11-05 23:41:54
如果您使用的是自定义引导程序应用程序,则可以在运行时从捆绑包中提取嵌入式.msi,然后使用WiX SDK提取该.msi的内容。
简而言之,您可以使用Unbinder类从捆绑包中提取MSI文件:
unbinder = new Unbinder();
unbinder.Unbind(bundlePath, OutputType.Bundle, tmpFolder);
unbinder.DeleteTempFiles();然后,使用InstallPackge类提取文件:
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
重要提示:这不会运行您的任何自定义操作,因此请确保将其考虑在内。
https://stackoverflow.com/questions/26749207
复制相似问题