[英]How to extract Wix bootstrapper embedded msi before actually run install?
我能够使用System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
和Ubinder提取自身。
但是在Wix 3.10.3稳定版中,BA只是将一个苗条的ba.exe
提取到temp文件夹中,然后它将切换到运行其中没有msi的苗条的ba.exe
。 提取本身将不起作用。 虽然我仍然无法获得第一次启动的完整ba.exe
因为它已经关闭。
如果可以从BootstrapperApplication
类获取任何属性以指出完整的ba.exe
(它应该具有一定的跟踪能力,因为在开始安装msi时应将其提取出来),或者我可以在开始安装msi之前调用提取程序吗?
使用Unbinder
类,您可以将嵌入式MSI提取到工作文件夹中。 请注意,这仅在捆绑包使用嵌入式MSI时有效。
我已包含以下代码,这需要您提供捆绑可执行文件的路径(与ba.exe不同)。 我已经在我的博客上写下了我的操作方法,您可以在此处查看: https : //www.wrightfully.com/extracting-wix-bundled-msi-files-without-running-the-installer/
Unbinder unbinder = null;
try
{
unbinder = new Unbinder();
//unbinder.Message += MessageEventHandlerMethod;
unbinder.Unbind(bundlePath, OutputType.Bundle, tmpFolder);
}
finally
{
if (null != unbinder)
unbinder.DeleteTempFiles();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.