Почему мой плагин, собранный с Ocean / Petrel 2010.2.2, не работает с 2010.2? - PullRequest
3 голосов
/ 13 июля 2011

Мы создали плагин с последним исправлением Ocean / Petrel: 2010.2.2. Все наши тесты работают нормально. Но плагин аварийно завершает работу при использовании с 2010.2.

Любой совет от кого-либо?

Ответы [ 2 ]

7 голосов
/ 13 июля 2011

Выпуски 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),
  • Скомпилируйте плагин с последним Незначительным выпуском (2010.2), если вам абсолютно необходима новаяAPI, представленный в этом патче.
  • Но Никогда не компилируйте свой плагин с помощью исправлений ,

Несоблюдение этих правил заставит ваших клиентовиспользовать, развертывать или повторно развертывать исправление или оперативное исправление, которое вы использовали для создания своего подключаемого модуля.Это задержит (в лучшем случае) или предотвратит (в худшем случае) продажу / принятие вашего плагина вашими клиентами.

Надеюсь, это поможет
С уважением
Vincent

5 голосов
/ 13 июля 2011

Я также обнаружил, что это проблема.Что я делаю, так это сохраняю копии общих папок для каждой версии Petrel и связываю ссылки с папкой / версией, с которой я хочу скомпилировать, вместо того, чтобы всегда ссылаться на установленную версию Petrel.Вы можете легко переключаться с помощью файла .targets.Затем я следую тому, что сказал Винсент, и проверяю ссылки на соответствующие библиотеки для сборки.

Итак, даже если у меня есть Petrel 2010.2, я ссылаюсь на библиотеки 2010.1 во время сборки.

Предоставление

...