【问题标题】:Wix 3.6 Burn: unmanaged custom UIWix 3.6 Burn:非托管自定义 UI
【发布时间】:2012-09-18 06:17:22
【问题描述】:

我想将多个 MSI 打包到一个安装包中,因此我使用的是来自 Wix3.6 的 Burn。

我想要一个简单的用户界面,允许选择应安装的软件包。

我了解标准 BA (wixstdba.dll) 不提供此功能,因此我需要编写自己的 BA。

我一直在将“wix36-sources”包中的“wixstdba”项目作为 C++ BA 的示例。首先,我尝试简单地重建项目并将生成的 DLL 添加到我的 Bundle 中,如下所示:

<Bundle 
    Name="$(var.ProductName)"
     Version="$(var.ProductVersion)"
    Manufacturer="$(var.VendorName)"
    UpgradeCode="$(var.UpgradeCode)" >
    <BootstrapperApplication SourceFile="wixstdba.dll" />
    <Chain>
    ...

我成功构建了 Bundle:

light -ext WixBalExtension.dll -ext WixUIExtension -ext WixUtilExtension installer-v$(VERSION).wixobj -o installer-v$(VERSION).exe

candle -o installer-v$(VERSION).wixobj bundle.wxs -d"Platform=x64"

但是,当我运行生成的 .exe 时,没有任何反应。没有出现 UI,没有安装任何软件,也没有错误消息。

知道我做错了什么吗?

【问题讨论】:

    标签: wix windows-installer burn


    【解决方案1】:

    当您运行 .exe 时,它​​应该在系统的 %TEMP% 文件夹中创建一个日志文件。这应该告诉您是否遇到任何错误。文件名将是产品名称(空格替换为下划线)。找到它的最简单方法是打开 Windows 资源管理器窗口,键入“%TEMP%”作为文件夹名称,然后按修改日期 desc 排序。最上面的文件可能是正确的。

    引导程序很可能正在运行,但是当它尝试加载您的代码时,它无法加载某些依赖项,或者有一些错误。希望日志能够为您提供足够的提示来找到问题。

    如果您最终需要添加额外的库/文件供您的 BA 使用,请将它们添加到捆绑负载文件中,如下所示:

    这会将文件放在运行时解压后的 BA 所在的文件夹中。

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      相关资源
      最近更新 更多