在尝试构建依赖于.NET 4框架的Burn引导程序时,我遇到了一个奇怪的错误。我已经下载了WiX设置的源代码并在我的项目中包含NetFx.wxs
并在Chain中添加了PackageGroupRef,但是我收到以下错误:
错误LGHT0103:系统找不到文件'dotNetFx40_Full_x86_x64.exe'
档案Netfx.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">
<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>
如何解决此问题?
答案 0 :(得分:7)
在制作msi时,您需要在本地存在dotNetFx40_Full_x86_x64.exe文件。 WiX不会将其打包在msi中,只有在需要时才会在安装时下载。
答案 1 :(得分:6)
使用 RemotePayload Element 中记录的<RemotePayload>
选项,您实际上可以在不存在dotNetFx40_Full_x86_x64.exe文件的情况下构建程序包。