我对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);
来尝试安装。
答案 0 :(得分:0)