【问题标题】:WiX: getting Bootstrapper filname during installationWiX:在安装过程中获取引导程序文件名
【发布时间】:2013-02-18 09:04:11
【问题描述】:

我们公司正在使用 WiX 来创建我们(目前非常简单)的设置。我们有一个引导程序项目,它安装 .Net 4.0 框架并运行我们的 MSI 包(WiX 安装项目)。我们现在想要在运行时访问引导程序 (Setup.exe) 的文件名并将其保存到文件中。仅作背景说明:文件名不固定,我们的下载服务器会经常更改,所以我们必须在运行时访问它。

很遗憾,我没有找到任何使用 WiX 完成此任务的解决方案。有人能帮我吗?也许你有一些想法?

提前致谢!

【问题讨论】:

    标签: wix


    【解决方案1】:

    这是你自己的引导程序,对吧?如果是这样,引导程序要么知道它自己的名称,要么可以在运行时检测到它 (::GetModuleFileName())。当引导程序运行 .msi 安装时,让它在命令行上将其名称作为公共属性传递:

    msiexec /i OurPackage.msi IWASBOOTSTRAPPEDBY=bootstrappername.exe
    

    IWASBOOTSTRAPPEDBY 属性随后可用于基于 WiX 的 .msi 包,以便随心所欲地使用。

    就此而言,引导程序本身可以将其名称写入文本文件,甚至不会打扰 .msi 包。

    【讨论】:

    • 不,这不是我自己的引导程序应用程序。我们目前使用 WiX 默认的 Bootstrapper 项目。我希望有一些内置变量或类似的东西。
    • 啊。不,我认为 WiX burn 不会那样做。由于它是开源的,因此您当然可以创建自己的自定义版本。或者让您的下载服务器代替 setup.exe 分配一个自解压存档,该存档包含 setup.exe 但首先运行脚本或其他东西来检查其自己的调用名称。但是不,WiX 不提供免费的 AFAIK。
    • SFX 的想法是一个很好的提示。无论如何,我们采用了完全不同的方法来解决我们的问题,它独立于 WiX。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多