我们已经使用最新的Ocean / Petrel修补程序构建了一个插件:2010.2.2。
我们所有的测试都可行。
但是当与2010.2一起使用时,插件崩溃了。
任何人的建议吗?
答案 0 :(得分:7)
Ocean / Petrel发布分类如下:
主要版本不是二进制兼容的:针对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。
所以规则是:
不遵循这些规则将强制您的客户端使用,部署或重新部署您用于构建插件的修补程序或修补程序。这将延迟(最佳情况)或阻止(更糟糕的情况)客户销售/采用您的插件。
希望有帮助
问候
文森特
答案 1 :(得分:5)
我也发现这是一个问题。我所做的是为每个版本的Petrel保留Public文件夹的副本,并将引用链接到我希望编译的文件夹/版本,而不是始终链接到已安装的petrel版本。您可以使用.targets文件轻松切换。然后我按照文森特的说法去做,并确保引用适当的dll进行构建。
所以,即使我有Petrel 2010.2,我也会在构建过程中引用2010.1库。
捐赠