【问题标题】:Bundle fails to open MSI fileBundle 无法打开 MSI 文件
【发布时间】:2013-04-29 10:49:27
【问题描述】:

我正在为我的安装程序创建一个捆绑包,但我不断收到以下错误消息:

"此安装包无法打开,请联系 应用程序供应商验证这是一个有效的 Windows 安装程序 包。”

当我手动启动它时,我的安装程序运行良好。我的包裹有什么问题吗?我正在使用 WiX 3.7。另外,捆绑包中的升级代码和安装程序是否必须相同?

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Bundle Name="Bootstrapper1" Version="$(var.Version)" 
            Manufacturer="$(var.CompanyName)"
            UpgradeCode="$(var.ProductUpgradeCode)"
            Copyright="Copyright© 2013"
            Condition="((VersionNT >= v5.1) AND (ServicePackLevel >= 3)) OR
              ((VersionNT >= v5.2) AND (ServicePackLevel >= 2)) OR (VersionNT >= v6.0)"> 

        <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
        <Chain>
            <MsiPackage Id="Setup" Compressed="yes" SourceFile="$(var.Installer.TargetPath)"
                        Vital="yes">
                <MsiProperty Name="INSTALLLOCATION" Value="[InstallFolder]" />
            </MsiPackage>
        </Chain>
    </Bundle>
</Wix>

【问题讨论】:

  • 虽然这里不是这种情况,但如果指定“setup.exe”文件而不是“.msi”文件(对于SourceFile=),则会得到完全相同的症状。

标签: installation wix burn


【解决方案1】:

Bundle 元素的输出是一个可执行文件。您不能将该可执行文件传递给 Windows 安装程序。只需双击它,它就会运行。如果没有,请查看%TEMP% 文件夹,您应该会看到一个名为BundleSetup_*.log 文件的日志文件。该日志文件应该包含有关可执行文件无法启动的原因的更多详细信息。

其次,BundleUpgradeCode 完全独立于 .msi 文件的 UpgradeCode

【讨论】:

  • 啊,现在我意识到问题所在了。我正在尝试将 .msi 封装在捆绑器中,但我将输出指定为 .msi 文件。当我将其更改为 .exe 文件时,它起作用了!谢谢! :)
猜你喜欢
  • 1970-01-01
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多