You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WIX制作含2个inf文件的相机驱动安装包difx:Driver报错如何解决

WiX打包多inf相机驱动报错CNDL0207的解决办法

报错根因

该报错本质不是你编写的单个Component内存在多个difx:Driver节点,而是两个Component指向同一个输出目录MyCamModuleDir,且都包含同名文件wdfcoinstaller01011.dll。WiX打包时会自动将同路径、同名的文件合并到同一个Component中,合并后的Component就携带了两个difx:Driver节点,因此触发校验报错。


解决方案

方案1:拆分不同驱动的输出目录(推荐)

将两个驱动的文件输出到不同的子目录,避免同名文件路径冲突,无需改动本地源码结构,仅调整WiX配置即可:

  1. 先在项目的Directory定义段新增两个子目录节点:
<Directory Id="MyCamModuleDir" Name="MyCam">
    <Directory Id="Driver1Dir" Name="USBX64" />
    <Directory Id="Driver2Dir" Name="CabUSBX64" />
</Directory>
  1. 修改两个ComponentGroup的Directory属性对应到新的子目录,其余内部配置保持不变:
<ComponentGroup Id="MyCamDriver1" Directory="Driver1Dir" Source="modules\system\camera\myCam\USBX64">
    <!-- 原有Component内部配置不改动 -->
</ComponentGroup>
<ComponentGroup Id="MyCamDriver2" Directory="Driver2Dir" Source="modules\system\camera\myCam\CabUSBX64">
    <!-- 原有Component内部配置不改动 -->
</ComponentGroup>

方案2:抽取公共依赖为独立组件

如果要求两个驱动的文件必须输出到同一个目录,可以把公共依赖wdfcoinstaller01011.dll单独拆为独立Component,从两个驱动的Component中移除该文件的配置:

<!-- 公共依赖组件,需生成新的唯一GUID -->
<ComponentGroup Id="MyCamDriverCommon" Directory="MyCamModuleDir">
    <Component Guid="生成新的唯一GUID" Win64="$(var.Win64)">
        <File Name="wdfcoinstaller01011.dll" KeyPath="yes" />
    </Component>
</ComponentGroup>

<!-- 驱动1组件,移除wdfcoinstaller01011.dll配置 -->
<ComponentGroup Id="MyCamDriver1" Directory="MyCamModuleDir" Source="modules\system\camera\myCam\USBX64">
    <Component Guid="7A259B3A-E41F-460F-8311-03CD89D9A7C5" Win64="$(var.Win64)">
        <File Name="myCamusbX64.inf" KeyPath="yes" />
        <File Name="myCamusbX64.sys" />
        <File Name="myCamusbX64.cat" />
        <difx:Driver DeleteFiles="yes" Legacy="yes" AddRemovePrograms="no" PlugAndPlayPrompt="no" />
    </Component>
</ComponentGroup>

<!-- 驱动2组件,移除wdfcoinstaller01011.dll配置 -->
<ComponentGroup Id="MyCamDriver2" Directory="MyCamModuleDir" Source="modules\system\camera\myCam\CabUSBX64">
    <Component Guid="91E30F1E-1C53-49FB-B31E-273CD43120BD" Win64="$(var.Win64)">
        <File Name="myCamcabusbX64.inf" KeyPath="yes" />
        <File Name="myCamcabusbX64.sys" />
        <File Name="myCamcabusbX64.cat" />
        <difx:Driver DeleteFiles="yes" Legacy="yes" AddRemovePrograms="no" PlugAndPlayPrompt="no" />
    </Component>
</ComponentGroup>

最后将公共组件MyCamDriverCommon加入到你的Feature引用列表即可正常打包。

内容的提问来源于stack exchange,提问作者Hans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:36:07