微软XPSDrv打印驱动示例编译错误1297解决方案求助
解决方案
以下是针对所有报错与警告的修复步骤,完全适配虚拟打印机驱动场景,无需删除INF或Manufacturer配置段:
1. 修复Error 1297核心报错
报错原因是当前运行的是Win32架构构建,INF中包含的arm64、ia64等架构的设备匹配段没有对应构建产物,INF校验时判定驱动包没有适配任何当前架构的设备。
修复方式二选一:
- 若无需兼容ia64、arm64架构,直接修改
xdsmpl.inf的[Manufacturer]段,删除不需要的架构后缀:
同时同步删除inf中对应的[Manufacturer] %ManufacturerName%=Standard,NTx86,NTamd64,NTx86.6.0,NTamd64.6.0[Standard.NTia64]、[Standard.NTarm64.6.0]、[PrinterPackageInstallation.ia64]、[PrinterPackageInstallation.arm64]段即可。 - 若需要多架构兼容,在Visual Studio的配置管理器中,给每个目标架构单独配置构建参数,构建对应架构版本时只校验对应架构的INF段。
2. 修复Warning 2083未引用段警告
在每个[INSTALL_XDSMPL_FILTERS_*]段中添加对对应架构PrinterPackageInstallation段的引用,比如针对Vista及以上版本的安装段添加:
[INSTALL_XDSMPL_FILTERS_VISTA] Include=NTPRINT.INF Needs=PrinterPackageInstallation.amd64 ; 根据实际架构替换为x86等 ; 保留原有配置不变
也可以直接在每个[Standard.NTxxx]设备匹配段下新增上述Include和Needs配置,即可解决段未引用的警告。
3. 修复Warning 1324缺少PnpLockdown配置警告
在xdsmpl.inf的[Version]段中添加一行配置即可:
[Version] Signature="$Windows NT$" Provider=%ProviderString% ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318} Class=Printer DriverVer=10/17/2008,6.1.6930.0 CatalogFile=XpsDrvSmpl.cat PnpLockdown=1 ; 新增这行
4. 修复Driver Package无项目引用警告
右键点击解决方案中的「Driver Package」项目,依次选择「添加 -> 引用」,勾选解决方案中所有驱动相关的子项目(过滤器项目、UI插件项目等),确认后重新构建,驱动包会自动打包所有依赖的编译产物,Inf2Cat任务也会正常运行生成签名所需的cat文件。
所有修改完成后重新生成解决方案,即可正常构建出符合要求的虚拟打印机驱动包,完整保留INF与Manufacturer配置满足签名要求。
内容的提问来源于stack exchange,提问作者iheb belaiba
相关产品推荐
相关产品推荐

