3

最新の Ocean/Petrel ホットフィックス 2010.2.2 を使用してプラグインを作成しました。すべてのテストは問題なく動作します。ただし、2010.2 で使用するとプラグインがクラッシュします。

誰かからのアドバイスはありますか?

4

2 に答える 2

7

海洋/ミズナギドリのリリースは次のように分類されます。

  • メジャー リリース: 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) でコンパイルしてください。
  • ただし、ホット フィックスに対してプラグインをコンパイルしないでください。

これらの規則に従わない場合、クライアントは、プラグインの構築に使用したパッチまたはホット フィックスを使用、展開、または再展開する必要があります。これにより、クライアントによるプラグインの販売/採用が遅れる (最良の場合) か、妨げられる (最悪の場合) ことになります。

それが役立つことを願って
よろしく
Vincent

于 2011-07-13T08:01:43.600 に答える
5

また、これが問題であることがわかりました。私がしていることは、Petrel の各バージョンの Public フォルダーのコピーを保持し、インストールされている Petrel バージョンに常にリンクするのではなく、コンパイルしたいフォルダー/バージョンへの参照をリンクすることです。.targets ファイルを使用して簡単に切り替えることができます。次に、Vincent が言ったことに従い、ビルドに適切な dll を参照するようにします。

そのため、Petrel 2010.2 を使用している場合でも、ビルド中に 2010.1 ライブラリを参照します。

許す

于 2011-07-13T12:32:34.773 に答える