2011-12-31 54 views
2

我對WiX的世界有點新,所以很可能我錯過了非常明顯的東西。WiX 3.6燒傷引導程序無法升級

我已經安裝了WiX 3.6測試版,並且抓取源代碼以便從(並且調整它使用WiX 3.6安裝的二進制文件)工作,但是我遇到了引導程序問題。我可以讓我的自定義用戶界面顯示,但它不會安裝任何內容 - 它會在日誌中顯示以下內容。

Error 0x80070006: Failed to write message type to pipe. 
Error 0x80070006: Failed to write send message to pipe. 
Error 0x80070006: Failed to send BURN_ELEVATION_MESSAGE_TYPE_EXECUTE_DEPENDENCY message to per-machine process. 
Error 0x80070006: Failed to register the dependency on per-machine package. 
Error 0x80070006: Failed to execute dependency action. 
Error 0x80070006: Failed to execute apply. 

如果我在WiX源代碼中使用WixUX,會發生同樣的事情。如果我(手動)以管理員身份運行它,它將使用我的GUI或WixUX來安裝該文件。如果我使用默認的WixStandardBootstrapperApplication,則無論仰角如何,它都可以正常安裝。

MSI文件本身當前安裝到UserData中,所以它實際上並不需要提升。

我Bundle.wxs樣子:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
    <Bundle Name="MahChats" Version="1.0.0.1" Manufacturer="MahApps" IconSourceFile="../../../MahChats/src/MahChats/mahchats.ico" UpgradeCode="9c9a0cf4-659f-4543-b05a-962322fec4a0"> 
     <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost"> 
      <Payload SourceFile='WixUX.dll' /> 
      <Payload Name='BootstrapperCore.config' SourceFile='WixUX.BootstrapperCore.config' /> 
     </BootstrapperApplicationRef> 
     <Chain> 
      <PackageGroupRef Id="Netfx4Full"/> 
      <MsiPackage Id='MahChats' Vital='yes' Name='MahChats.Setup.msi' SourceFile="C:\Code\mahchats\src\MahChats.Setup\bin\Debug\MahChats.Setup.msi" /> 
     </Chain> 
    </Bundle> 
    <Fragment> 
     <WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" /> 
     <WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" /> 

     <util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4FullVersion" /> 
     <util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4x64FullVersion" Win64="yes" /> 
     <PackageGroup Id="Netfx4Full"> 
      <ExePackage Id="Netfx4Full" 
       Cache="no" 
       Compressed="no" 
       PerMachine="yes" 
       Permanent="yes" 
       Vital="yes" 
       SourceFile="dotNetFx40_Full_x86_x64.exe" 
       DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193" 
       DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" /> 
     </PackageGroup> 
    </Fragment> 
</Wix> 

我真的還沒找到任何文件上Burn,所以我使用的WixUX項目螺母出來,和我使用Bootstrapper.Engine.Plan(LaunchAction.Install);嘗試安裝。

回答

0

保羅,這是一個錯誤。在假期有很多解決依賴代碼的問題,很可能解決了這個問題。不幸的是,由於SourceForge的問題,我現在正在工作(字面意義上),因此沒有每週編譯。我希望下週五能夠擴建,並鼓勵您儘快採取行動。

+0

感謝羅布,我不僅僅是「高興」它是一個錯誤,因爲我在撓我的腦袋,以至於我可能做錯了什麼! 一旦它啓動並重新運行,我注意到在一些地方你已經呼籲人們提供一個'更漂亮'的樣本用戶體驗/安裝程序 - 我會嘗試並接受挑戰:) – 2012-01-01 02:01:22