繁体   English   中英

在实际运行安装之前,如何提取Wix bootstrapper嵌入式msi?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM