WiX在尝试绑定.NET framework依赖项时找不到文件

WiX在尝试绑定.NET framework依赖项时找不到文件,wix,wix3.6,burn,Wix,Wix3.6,Burn,我在尝试构建依赖于.NET4框架的Burn引导程序时遇到了一个奇怪的错误。我已经下载了WiX设置的源代码,并将NetFx.wxs包含在我的项目中,并在链中添加了PackageGroupRef,但我得到以下错误: 错误LGHT0103:系统找不到文件“dotNetFx40\u Full\u x86\u x64.exe” 文件Netfx.wxs: 如何解决此问题?制作msi时,需要在本地显示文件dotNetFx40\u Full\u x86\u x64.exe。WiX不会将其打包到msi中,只有在需

我在尝试构建依赖于.NET4框架的Burn引导程序时遇到了一个奇怪的错误。我已经下载了WiX设置的源代码,并将NetFx.wxs包含在我的项目中,并在链中添加了PackageGroupRef,但我得到以下错误:

错误LGHT0103:系统找不到文件“dotNetFx40\u Full\u x86\u x64.exe”

文件Netfx.wxs:


如何解决此问题?

制作msi时,需要在本地显示文件dotNetFx40\u Full\u x86\u x64.exe。WiX不会将其打包到msi中,只有在需要时才会在安装时下载。

制作msi时,您需要在本地显示文件dotNetFx40_Full_x86_x64.exe。WiX不会将其打包到msi中,并且只有在需要时才会在安装时下载。

您可以使用中记录的选项在不存在dotNetFx40_Full_x86_x64.exe文件的情况下实际生成包。

您可以使用该选项在不存在dotNetFx40_Full_x86_x64.exe文件的情况下实际生成包这一点在中有记录。

WiX所做的事情有一半有时看起来很疯狂-这是否意味着我必须将可再发行文件提交到我的版本控制系统中,以便在构建服务器上进行构建?天哪@TimLong您可以使用此处记录的选项@ViktorElofsson如果您在回答中提到这一点,我将接受并投票。当创建包时,Upfix工具集需要从可执行包中获取哈希、大小、签名和其他信息,以正确安装/缓存包。这就是文件必须存在或使用RemotePayload元素直接提供数据的原因。当你从引擎盖下面看的时候,这并不疯狂。WiX所做的事情有一半有时看起来很疯狂-这是否意味着我必须将可再发行文件提交到我的版本控制系统中,以便在构建服务器上进行构建?天哪@TimLong您可以使用此处记录的选项@ViktorElofsson如果您在回答中提到这一点,我将接受并投票。当创建包时,Upfix工具集需要从可执行包中获取哈希、大小、签名和其他信息,以正确安装/缓存包。这就是文件必须存在或使用RemotePayload元素直接提供数据的原因。当你从引擎盖下面看的时候,这并不疯狂。
<?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>