2013-04-29 90 views
1

我创造了我的安装程序捆绑,但我不断收到以下错误消息:捆绑无法打开MSI文件

“此安装包不能打开联系 应用程序供应商,以验证这是一个有效的Windows Installer 包。“

当我手动启动它时,我的安装程序工作正常。我的包有什么问题吗?我使用的是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> 
+0

虽然不是这种情况,但如果指定了“setup.exe”文件而不是“.msi”文件(对于'SourceFile ='),则会得到完全相同的症状。 – 2015-11-24 14:17:19

回答

3

Bundle元素的输出是可执行文件。您无法将该可执行文件传递给Windows Installer。只需双击它,它应该运行。如果没有,请查看%TEMP%文件夹,您应该看到一个日志文件,其名称为BundleSetup_*.log文件。该日志文件应该有关于可执行文件启动失败的更多细节。

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

+0

啊,现在我明白了问题所在。我试图将.msi封装在捆绑器中,但我将输出指定为.msi文件。当我将其更改为.exe文件时,它可以工作!谢谢! :) – Skaarjasaurus 2013-05-03 09:25:12