Deployment 在不重新部署依赖解决方案的情况下部署BizTalk架构解决方案

Deployment 在不重新部署依赖解决方案的情况下部署BizTalk架构解决方案,deployment,biztalk,biztalk-2013r2,Deployment,Biztalk,Biztalk 2013r2,我有三个解决办法。一种是模式解决方案,其中只有一个模式文件,我们称之为SchemaSolution 在我的另外两个解决方案中引用了SchemaSolution,因为Solution1在SchemaSolution中创建了该模式的xml实例,并将其作为自相关放在消息框中 这很神奇,但如果我想更新其中一个引用SchemaSolution部署到BizTalk的解决方案,我必须始终删除其他解决方案。这太可怕了,直到现在我才找到解决办法 有没有一条不黑的路?我曾考虑将所有项目合并到一个解决方案中,但这是我

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

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

这很神奇,但如果我想更新其中一个引用SchemaSolution部署到BizTalk的解决方案,我必须始终删除其他解决方案。这太可怕了,直到现在我才找到解决办法

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

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


BizTalk 2013R2正在使用中

否这不受支持,也不建议尝试破解此想法。您肯定需要更改BizTalk数据库,我认为Microsoft甚至不允许这样做

我可以给你3个选择:

使SchemaSolution尽可能小,例如,将它分解为每个进程的多个SchemaSolution,这样您需要更改解决方案的可能性就会更小。理想情况下,在这个解决方案中,每个模式有一个程序集/项目,因此可以添加新的模式而无需重新部署。 另一种选择是将模式复制到项目中,这是您可以做出的设计选择,但需要更多的工作,因为您需要在管道中指定模式,否则它不知道您指的是哪一个,并且您需要在多个项目中更改同一模式。缺点是,架构与BizTalk不同,因此在没有引用的情况下不能在其他项目中使用它。 您的最后一个选择是完全摆脱该模式的依赖性,您可以通过创建自己的内部/通用/cdm模式来做到这一点,理想情况下,该模式将更健壮,更不容易更改。这个模式仍然会被多个项目引用,但是因为你是负责它的人,所以你可以预测它并将它塑造成你喜欢的东西。同样,在理想情况下,在这个解决方案中,每个模式有一个程序集/项目,因此可以添加新的模式,而无需重新部署。
不,这是不受支持的,也不建议尝试和黑客进入这个想法肯定需要改变BizTalk数据库,我认为这是微软甚至不允许的

我可以给你3个选择:

使SchemaSolution尽可能小,例如,将它分解为每个进程的多个SchemaSolution,这样您需要更改解决方案的可能性就会更小。理想情况下,在这个解决方案中,每个模式有一个程序集/项目,因此可以添加新的模式而无需重新部署。 另一种选择是将模式复制到项目中,这是您可以做出的设计选择,但需要更多的工作,因为您需要在管道中指定模式,否则它不知道您指的是哪一个,并且您需要在多个项目中更改同一模式。缺点是,架构与BizTalk不同,因此在没有引用的情况下不能在其他项目中使用它。 您的最后一个选择是完全摆脱该模式的依赖性,您可以通过创建自己的内部/通用/cdm模式来做到这一点,理想情况下,该模式将更健壮,更不容易更改。这个模式仍然会被多个项目引用,但是因为你是负责它的人,所以你可以预测它并将它塑造成你喜欢的东西。同样,在理想情况下,在这个解决方案中,每个模式有一个程序集/项目,因此可以添加新的模式,而无需重新部署。
我有一个非常相似的问题,如果不是同一个问题的解决方案。 我有一组依赖于简单模式项目的集成项目。如果我部署一个集成项目,我必须部署模式项目,这意味着我必须部署所有集成项目

为了独立地部署它们,我只是在模式项目的VS中的属性中将重新部署标志从true改为false

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


我在BT2016中已经这样做了,我假设您在2013年也可以这样做

我在解决方案中有一个非常类似的问题,如果不是相同的问题的话。 我有一组依赖于简单模式项目的集成项目。如果部署一个集成项目,则必须部署模式项目,该项目将支持我 ans我必须部署所有集成项目

为了独立地部署它们,我只是在模式项目的VS中的属性中将重新部署标志从true改为false

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


我在BT2016做过这件事,我想你在2013年也可以做同样的事

很好的回答,有很多背景信息。实际上,我使用的是您的第一个选项,因为这似乎是最相关、最简单的版本。但是,:.@kurdy,另一个选项,你也可以选择不解析消息,如果这是你的流程传递槽中的一个选项,那么你甚至不需要架构的。我认为这在我的情况下不起作用,因为解决方案1中的输入消息触发了SchemaSolution的n条消息的创建。如果我没弄错的话。@kurdy,是的,那真的不是一个选择。有很多背景信息的回答很好。实际上,我使用的是您的第一个选项,因为这似乎是最相关、最简单的版本。但是,:.@kurdy,另一个选项,你也可以选择不解析消息,如果这是你的流程传递槽中的一个选项,那么你甚至不需要架构的。我认为这在我的情况下不起作用,因为解决方案1中的输入消息触发了SchemaSolution的n条消息的创建。如果我没弄错的话。@kurdy,是的,那真的不是一个选择。这确实有效!正如你说的那样。我们得到的错误都是信息,但部署和主机重启工作正常:-0乐于帮助:d这确实有效!正如你说的那样。我们得到的错误都是信息,但部署和主机重启工作正常:-0乐意帮忙:D