为什么使用Ocean/Petrel 2010.2.2构建的插件不能与2010.2一起使用?

Nau*_*lus 3 ocean petrel

我们使用最新的Ocean/Petrel修补程序构建了一个插件:2010.2.2.我们所有的测试都可行.但是当与2010.2一起使用时,插件崩溃了.

任何人的建议?

小智 7

Ocean/Petrel版本分类如下:

  • 主要版本:2009.1,2010.1,12012.1
  • 次要版本或补丁:2009.2,2010.2,22012.2
  • Hotfix:2010.2.1,2010.2.2

主要版本不是二进制兼容的:针对2009.1编译的插件需要重新编译才能与2010.1一起使用.使用2年的API稳定性,它应该只是重新编译.您可能会收到有关将在下一版本中弃用的过时API的警告,但这应该是一项快速任务.

次要版本通常是向后兼容的:Petrel 2010.2将能够运行使用2010.1编译的插件.但是,无法确保前向二进制兼容性:Petrel 2010.1不会运行使用2010.2编译的插件.
请注意,次要版本也可以引入一些新的API.

Hotfix始终是向后二进制兼容的:Petrel 2010.2可以运行使用2010.1,2010.2,2010.2.1编译的插件.但是,目前无法确保正向二进制兼容性:Petrel 2010.2不会运行使用2010.2.1或2010.2.2编译的插件.
Hotfix从不引入新的API.

所以规则是:

  • 始终使用上一个主要版本(在您的情况为2010.1)编译您的插件,
  • 如果您绝对需要在此修补程序中引入新的API,请使用最新的Minor版本(2010.2)编译您的插件.
  • 但是永远不要针对热修复编译插件,

不遵循这些规则将强制您的客户端使用,部署或重新部署您用于构建插件的修补程序或修补程序.这将延迟(最佳情况)或阻止(更糟糕的情况)客户销售/采用您的插件.

希望它有助于
问候
文森特


小智 5

我也发现这是一个问题.我所做的是为每个版本的Petrel保留Public文件夹的副本,并将引用链接到我希望编译的文件夹/版本,而不是始终链接到已安装的petrel版本.您可以使用.targets文件轻松切换.然后我按照文森特的说法进行操作,并确保参考适当的dll进行构建.

所以,即使我有Petrel 2010.2,我也会在构建过程中引用2010.1库.

格兰特