2

我对 WiX 的世界有点陌生,所以我很可能错过了一些非常明显的东西。

我已经安装了 WiX 3.6 测试版,并获取了源代码(并对其进行了调整以使用安装了 WiX 3.6 的二进制文件),但我在使用引导程序时遇到了问题。我可以显示我的自定义 UI,但它不会安装任何东西 - 它失败并在日志中显示以下内容。

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);尝试安装。

4

1 回答 1

0

保罗,这是一个错误。假期期间对依赖代码进行了一系列修复,很可能解决了这个问题。不幸的是,由于我现在正在工作的 SourceForge 的问题,没有每周构建一次(字面意思)。我预计下周五会有一个版本,并鼓励您在它可用时立即迁移到它。

于 2012-01-01T00:01:32.337 回答