首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有2个inf文件的摄像机驱动程序的WIX安装程序

带有2个inf文件的摄像机驱动程序的WIX安装程序
EN

Stack Overflow用户
提问于 2021-10-25 14:38:07
回答 2查看 48关注 0票数 0

我试图为包含两个inf文件的照相机驱动程序创建一个安装程序。到目前为止,我所拥有的是一个工作安装程序,其相关部分如下:

代码语言:javascript
复制
        <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" />
            <File Name="wdfcoinstaller01011.dll" />
            <difx:Driver DeleteFiles="yes" Legacy="yes" AddRemovePrograms="no" PlugAndPlayPrompt="no" />
        </Component>
    </ComponentGroup>
    <!-- <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" />                                                                    -->
    <!--         <File Name="wdfcoinstaller01011.dll" />                                                               -->
    <!--         <difx:Driver DeleteFiles="yes" Legacy="yes" AddRemovePrograms="no" PlugAndPlayPrompt="no" />          -->
    <!--     </Component>                                                                                              -->
    <!-- </ComponentGroup>                                                                                             -->

执行此操作可以很好地安装myCamusbX64驱动程序,也可以卸载它应该删除的所有内容。但是,一旦我添加了未注释的部分,安装程序就不会使用错误消息创建:

错误CNDL0207组件元素包含一个意外的子元素‘difx:驱动’。“difx:驱动程序”元素只能在组件元素下出现一次。

实际上,‘difx:’元素在组件下只发生过一次,不是吗?它甚至分为两个不同的组成组。有谁知道如何解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2021-10-25 16:44:47

向每个Id添加显式Component

票数 0
EN

Stack Overflow用户

发布于 2021-10-26 07:32:19

Bob Arnson's answer把我引向了正确的方向。然而,我不得不添加一些更多的更改。下面是我现在正在做的事情:

代码语言:javascript
复制
    <ComponentGroup Id="MyCamDriverUSB" Directory="MyCamModuleDirUSB" Source="modules\system\camera\myCam\USBX64">
        <Component Id="MyCamUsbX64" Guid="7A259B3A-E41F-460F-8311-03CD89D9A7C5" Win64="$(var.Win64)">
            <File Name="myCamusbX64.inf" KeyPath="yes" />
            <File Name="myCamusbX64.sys" />
            <File Name="myCamusbX64.cat" />
            <File Id="WdfUSB" Name="wdfcoinstaller01011.dll" />
            <difx:Driver DeleteFiles="yes" Legacy="yes" AddRemovePrograms="no" PlugAndPlayPrompt="no" />
        </Component>
    </ComponentGroup>
    <ComponentGroup Id="MyCamDriverCABUSB" Directory="MyCamModuleDirCABUSB" Source="modules\system\camera\myCam\CabUSBX64">
        <Component Id="MyCamCabUsbX64" Guid="91E30F1E-1C53-49FB-B31E-273CD43120BD" Win64="$(var.Win64)">                            
            <File Name="myCamcabusbX64.inf" KeyPath="yes" />
            <File Name="myCamcabusbX64.sys" />
            <File Name="myCamcabusbX64.cat" />                                                                  
            <File Id="WdfCABUSB" Name="wdfcoinstaller01011.dll" />                                                           
            <difx:Driver DeleteFiles="yes" Legacy="yes" AddRemovePrograms="no" PlugAndPlayPrompt="no" />        
        </Component>                                                                                            
    </ComponentGroup> 

因此,对于Bob建议向每个组件添加一个Id,我必须向wdfcoinstaller01011.dll元素添加一个Id,并将ComponentGroups的Directory元素更改为惟一的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69710002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档