2013-04-29 88 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