【问题标题】:Deploy BizTalk Schema Solution without redeploying dependent Solutions无需重新部署依赖解决方案即可部署 BizTalk 架构解决方案
【发布时间】:2019-11-20 09:26:56
【问题描述】:

我有三个解决方案。一种是模式解决方案,其中只有一个模式文件,我们称之为 SchemaSolution。

在我的其他两个解决方案中引用了 SchemaSolution,因为 Solution1 在 SchemaSolution 中创建了模式的 xml 实例,并将其作为自相关丢弃在消息框中。

这很神奇,但如果我想更新引用 SchemaSolution 的解决方案之一(部署到 BizTalk),我总是必须删除其他解决方案。这太可怕了,直到现在我才找到解决方案。

有没有(没有hacky)方法?我曾考虑将所有项目合并到一个解决方案中,但这是我能想象到的实现目标的最坏情况。

如何在不删除和重新部署所有内容的情况下部署在不同解决方案中引用的项目?

正在使用 BizTalk 2013R2

【问题讨论】:

标签: deployment biztalk biztalk-2013r2


【解决方案1】:

不,不支持也不建议尝试破解这个想法(肯定需要更改 BizTalk 数据库,我认为微软甚至不允许这样做)。

我可以给你三个选择:

  • 使 SchemaSolution 尽可能小,例如将其分解为每个进程的多个模式解决方案,这样您需要更改解决方案的机会就会更小。理想情况下,在此解决方案中,每个架构都有 1 个程序集/项目,因此无需重新部署即可添加新架构。
  • 另一种选择是将架构复制到您的项目中,这是您可以做出的设计选择,但需要做更多工作,因为您需要在管道中指定架构(否则它不知道您使用哪个架构)意思),并且您需要在多个项目中更改相同的架构。缺点是,架构与 BizTalk 不同,因此您不能在没有参考的情况下在另一个项目中使用它。
  • 您的最终选择是完全摆脱该架构的依赖性,您可以通过创建自己的 internal/generic/cdm 架构来做到这一点,理想情况下,该架构会更健壮且不易更改。这个模式仍然会被多个项目引用,但由于你是负责它的人,你可以预测它并将其塑造成你的喜好。同样,理想情况下,在此解决方案中,每个架构有 1 个程序集/项目,因此无需重新部署即可添加新架构。

【讨论】:

  • 有很多背景信息的好答案。我实际上使用您的第一个选项,因为这似乎是最相关和最简单的版本。但是,:(。
  • @kurdy,另一个选项,如果这是您的过程中的一个选项(传递槽),您也可以选择不解析消息,那么您甚至不需要架构。
  • 我认为这在我的情况下不起作用,因为解决方案 1 中的输入消息会触发 SchemaSolution 的 n 条消息的创建。如果我没听错的话。
  • @kurdy,是的,那不是一个真正的选择。
【解决方案2】:

我在解决方案中有一个非常相似(如果不相同)的问题。 我有一组依赖于简单模式项目的集成项目。如果我部署一个集成项目,我必须部署模式项目,这意味着我必须部署所有集成项目!

为了独立部署它们,我只是在模式项目的属性(在 VS 中)内将重新部署标志从 true 变为 false。..

这使我可以根据需要重新部署尽可能多的其他依赖项目,而无需删除或乱七八糟。我可以部署单个集成项目,而不会影响其他项目。 唯一需要注意的是,当您出于某种原因重新部署时,VS 将您在架构项目上将重新部署设置为 False 的事实标记为错误,并表示其中一个项目未部署。 不是真正的错误,更像是一个警告。

我在 BT2016 中一直在这样做,我假设您在 2013 年也可以这样做

【讨论】:

  • 这确实有效!正如你所说。我们得到的“错误”是信息,但部署和主机重启工作正常。 :-0
  • 乐于助人:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-18
  • 2011-04-21
  • 2019-10-19
  • 1970-01-01
相关资源
最近更新 更多