Ocean Petrel 2022插件打包时tbb库第三方验证失败求助
问题描述
使用Ocean开发Petrel 2022插件时,PIP项目构建后运行PluginPackager出现验证失败,报错如下:
2> ERROR Plugin includes library that is already distributed by Petrel or another plugin, but it is not identical. 2> Plugin includes tbb, which conflicts with the same library in .
错误未明确指出冲突的具体库路径,排查后发现Petrel安装目录及已安装插件中仅存在3个tbb.dll实例,且版本均与插件使用的tbb.dll不同。
根据AcceptanceChecklist.xml的规则:
The plug-in may use 3rd party libraries deployed by Petrel. The Components list documents this set of 3rd parties.
- The plug-in must not deploy any library on this list, unless a different version is required
按此规则本不应触发验证错误,需解决第三方库部署时的验证通过问题。
解决方法
- 标记第三方库为私有部署:在插件的
PackageInfo.xml中,为tbb.dll添加<Private>True</Private>属性,告知PluginPackager该库是插件私有依赖,无需与Petrel自带版本做一致性校验。示例配置片段:<File Source="tbb.dll" Target="tbb.dll"> <Private>True</Private> </File> - 核对Components列表的版本规则:查阅Petrel官方提供的
Components列表,确认tbb的允许版本范围。若插件使用的版本不在允许范围内,需调整为兼容版本,或向官方申请版本豁免。 - 清理冗余依赖:检查项目构建输出目录,确认是否有未预期的
tbb.dll被打包。通过调整项目引用属性,将Petrel自带的tbb设置为“不复制到输出目录”,仅保留插件需要的私有版本。 - 临时跳过特定校验:在
PluginPackager命令行参数中,使用-IgnoreConflicts类参数临时跳过tbb库的校验(注意:仅用于测试,正式发布前需确认合规性)。
内容的提问来源于stack exchange,提问作者jslmsca
相关产品推荐
相关产品推荐

