WiX 3.6 Burn 引导程序无法提升
我对 WiX 的世界有点陌生,所以我很可能错过了一些非常明显的东西。
我已经安装了 WiX 3.6 beta,并获取了源代码来工作(并将其调整为使用 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);
来尝试安装。
I'm somewhat new to the world of WiX, so it's very possible I've missed something very obvious.
I've installed WiX 3.6 beta, and grabbed the source as well to work from (and adjusted it to use the WiX 3.6 installed binaries), but I'm having problems with the bootstrapper. I can get my custom UI to display, but it won't install anything - it fails with the following in the logs.
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.
The same thing happens if I use the WixUX in WiX source. If I (manually) run it as administrator, it'll install the file using either my GUI or WixUX. If I use the default WixStandardBootstrapperApplication
, it installs fine regardless of the elevation.
The MSI file itself currently installs into UserData, so it doesn't actually need elevation.
My Bundle.wxs looks like:
<?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>
I've not really found any documentation on Burn, so I'm using the WixUX project to nut it out, and I'm using Bootstrapper.Engine.Plan(LaunchAction.Install);
to attempt the install.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
保罗,这是一个错误。假期期间对依赖代码进行了一系列修复,很可能解决了这个问题。不幸的是,由于我现在正在工作的 SourceForge 的问题(字面意思),没有每周的构建。我预计下周五会进行扩建,并鼓励您在可用后立即使用它。
Paul, that is a bug. There were a bunch of fixes to dependency code over the holidays that very likely fixed this issue. Unfortunately, there is not a weekly build out due to issues with SourceForge that I'm working right now (literally). I expect a build out next Friday and encourage you to move to it as soon as it is available.