为什么我的使用 Ocean/Petrel 2010.2.2 构建的插件无法在 2010.2 上运行?

发布于 2024-11-19 13:32:54 字数 104 浏览 4 评论 0原文

我们使用最新的 Ocean/Petrel 修补程序构建了一个插件:2010.2.2。 我们所有的测试都工作正常。 但该插件与2010.2一起使用时会崩溃。

有人有什么建议吗?

We have built a plug-in with the latest Ocean/Petrel hotfix: 2010.2.2.
All our tests work OK.
But the plug-in crashes when used with 2010.2.

Any advice from anyone?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

幽梦紫曦~ 2024-11-26 13:32:54

Ocean/Petrel 版本分类如下:

  • 主要版本:2009.1、2010.1、2011.1
  • 次要版本或补丁:2009.2、2010.2、2011.2
  • 修补程序:2010.2.1、2010.2.2

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

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

修补程序始终向后二进制兼容:Petrel 2010.2 可以运行使用 2010.1、2010.2、2010.2.1 编译的插件。然而,当前无法确保向前二进制兼容性:Petrel 2010.2 将不会运行使用 2010.2.1 或 2010.2.2 编译的插件。
热修复永远不会引入新的 API。

因此规则是:

  • 始终使用最新的主要版本(在您的情况下为 2010.1)编译您的插件,
  • 如果您绝对需要此补丁中引入的新 API,请使用最新的次要版本(2010.2)编译您的插件。
  • 但是切勿针对修补程序编译您的插件

不遵循这些规则将迫使您的客户使用、部署或重新部署您用于构建插件的补丁或修补程序。这将延迟(最好的情况)或阻止(最坏的情况)您的客户销售/采用您的插件。

希望有帮助
问候
文森特

Ocean/Petrel releases are classified as follow:

  • Major releases: 2009.1, 2010.1, 2011.1
  • Minor releases, or patches: 2009.2, 2010.2, 2011.2
  • Hot fixes: 2010.2.1, 2010.2.2

Major releases are not binary compatible: a plug-in compiled against 2009.1 needs to be recompiled to work with 2010.1. With the 2 year API stability, it should be just a recompilation. You might have warnings about Obsolete APIs that will be deprecated in the next release, but it should be a quick task.

Minor releases are usually backward binary compatible: Petrel 2010.2 will be able to run a plug-in compiled with 2010.1. However forward binary compatibility is not ensured: Petrel 2010.1 will not run a plug-in compiled with 2010.2.
Note that Minor releases can also introduce few, but new APIs.

Hot fixes are always backward binary compatible: Petrel 2010.2 can run plug-ins compiled with 2010.1, 2010.2, 2010.2.1. However forward binary compatibility is currently not ensured: Petrel 2010.2 will not run plug-ins compiled with 2010.2.1 or 2010.2.2.
Hot fixes never introduce new APIs.

So the rules are:

  • Always compile your plug-in with the last Major Release (in your case 2010.1),
  • Compile your plug-in with the latest Minor release (2010.2) if you absolutly need a new API introduced in this patch.
  • But Never compile your plug-in against hot fixes,

Not following these rules will force your clients to use, deploy or redeploy the patch or hot fix you used to build your plug-in. This will delay (best case) or prevent (worse case) sales/adoption of you plug-in by your clients.

Hope it helps
Regards
Vincent

青萝楚歌 2024-11-26 13:32:54

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

因此,即使我有 Petrel 2010.2,我也会在构建过程中引用 2010.1 库。

授予

I have also found this to be a problem. What i do is keep a copies of the Public folder for each version of Petrel and link the references to the folder/version i wish to compile against instead of always linking to the installed petrel version. You can switch easily using a .targets file. I then follow what Vincent said and ensure to reference the appropriate dlls for a build.

So, even if i have Petrel 2010.2 i reference the 2010.1 libraries during the build.

Grant

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文