Повторное развертывание приложения BizTalk, которое используется другими приложениями - PullRequest
2 голосов
/ 09 сентября 2010

Я пытаюсь развернуть новую версию приложения BizTalk, которая содержит общие оркестровки для нескольких приложений (около 20 или около того).Новая версия содержит новую оркестровку, которая будет использоваться несколькими новыми приложениями.

Когда я пытаюсь импортировать msi для новой версии, я получаю сообщение об ошибке:

"Невозможно обновитьсборка "[имя_сборки]", поскольку она используется сборками, которых нет в наборе сборок для обновления. Чтобы обновить сборку, удалите следующие сборки: "[depenndant_assembly1] [depenndant_assembly2] ..."

Сервер BizTalk недоступен из среды разработки, поэтому приложение необходимо обновить с помощью консоли администрирования BizTalk. Как импортировать обновленное приложение, не удаляя и не переустанавливая все 20 или около того зависимых приложений?

Спасибо

Ответы [ 2 ]

4 голосов
/ 10 сентября 2010

Похоже, вы развертываете новое базовое приложение с теми же номерами версий, что и у существующей более старой версии.

Что у нас работает:

  • Каждый раз, когда вы развертываете новую версию своего приложения, увеличивайте номер версии (поскольку сборки собраны в GAC, BTS поддерживает параллельное управление версиями). Любые измененные пользовательские сборки также должны быть версионными.
  • После развертывания в новом приложении на локальном BizTalk отредактируйте ресурсы, чтобы обеспечить актуальность правильных (последних) версий всех сборок, привязок и т. Д., На которые имеются ссылки (удалить старые, добавить новые).
    • Ваше общее приложение теперь будет содержать как старые, так и новые версии сборок. Более новые версии ваших «клиентских» приложений будут использовать более позднюю версию вашего базового / фреймворка / общего приложения.
    • После обновления всех зависимых приложений вы можете удалить старую версию.

Но реальное решение, по-видимому, заключается в том, чтобы рассмотреть возможность большей развязки ваших приложений, например, используя обмен сообщениями между приложениями - таким образом, вы можете выделить только схемы в качестве общей ссылки на приложения.

1 голос
/ 27 мая 2011

На самом деле вы можете взломать процесс развертывания на BT немного дальше, чем этот, если вы хотите пропустить управление версиями, в зависимости от вашего доступа к фактической коробке BT. (Убедить сисадмина)

Если у вас есть доступ только к консоли развертывания, остановите зависимые приложения, удалите их ссылку на приложение, которое вы хотите обновить, а затем разверните поверх, повторно добавьте свои ссылки и перезапустите зависимые приложения. Вам на самом деле не нужно переустанавливать. Этот метод утомителен и отстой, но он будет работать. Мы делаем это, потому что у нас слишком много установок BT, чтобы еще больше их загромождать несколькими версиями одного и того же приложения

Вот хак. Вам понадобится либо доступ к серверу (который, как я знаю, вы сказали, что у вас его нет), либо возможность установить службу, которая может получить dll и выполнить для вас следующую функцию. (Я думаю, вы могли бы убедить кого-то позволить вам настроить это) ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ, это не поддерживаемое решение, и я не требую ответственности бла-бла-бла

Мы делаем это все время, так как у нас НАМНОГО слишком много приложений, чтобы сделать первое решение. Вы можете бросить свою недавно скомпилированную DLL в GAC. Это не рекомендуется MSFT и т. Д., Но мы используем его в производстве на серверах, которые имеют прибл. 4000 dll в приложениях GAC и 1200 BT. Вам нужно убедиться, что ваши метаданные идентичны, т. Е. У вас одна и та же версия, ключ и т. Д., И вы захотите иметь какой-то способ отслеживания ваших dll за пределами системы управления версиями (для этого мы создаем собственную инфраструктуру развертывания). ). Наконец, после того, как вы вставили свои библиотеки в GAC, вам нужно будет перезапустить службы biztalk. Убедитесь, что у вас нет приостановленных экземпляров, ссылающихся на приложение, которое вы хотите повторно развернуть, потому что они не позволят biztalk получить новую ссылку из GAC при перезапуске.

Наконец, важно отметить, что этот метод НЕ будет работать, если ваши изменения требуют изменений в подпитке MessageBox (такие как изменения в фильтрах формы получения, корреляции и т. Д.). Вы также откажетесь от некоторых функций в отладчике оркестровки, если Вы используете этот метод, чтобы изменить структуру орхидей. На графике будет отображаться структура оркестровки, когда она установлена ​​в последний раз, но ваш список событий будет соответствовать самой новой версии. Наконец, если вы заменяете dll-схемы, вы хотите вдвойне убедиться, что перезапускаете сервисы, так как BT будет кешировать схемы бесконечно.

...