通过解决方案导入更新 CRM 不会更新快速查找视图

CRM update via solution import does not update Quick Find view

我们是房屋协会。我们使用 CRM 2016 SP1。我们的开发和 QA 环境是单服务器配置,登台和生产是带有负载均衡器的多服务器配置。我们在 QA、登台和生产方面的定制解决方案得到管理。

我们需要为我们的两个实体 Person 和 属性 更新一个 "Quick Find Active" 视图,在我们的暂存和生产环境中使用一些额外的搜索列。

我通过转到设置->解决方案->[自定义解决方案]->实体->[自定义实体]->视图->快速查找活动 [实体],将新列添加到 Dev 环境中的那些实体视图]-> 添加查找列。我对两个实体都做了同样的事情。

为了将更新作为补丁部署到其他环境,我导出了一个独立的解决方案文件,其中仅包含具有更新视图的 Person 和 属性 实体。然后我将解决方案文件导入到QA环境中进行测试。

导入后在 QA 中发布了更改,我在默认解决方案中检查了实体的快速查找活动视图(设置->自定义->自定义系统->[自定义解决方案]->实体->[自定义实体]->视图)。我注意到 属性 实体已更新,但 Person 实体没有。没有意义。

在网上搜索了一段时间没有找到答案,我们决定在staging中试用补丁解决方案。所以我们导出了解决方案文件,但在发布更改之前我们决定检查更新。令我们惊讶的是,两个实体都已更新。所以我们没有发布更改。

对结果很满意,并将问题归咎于我们的 QA 环境,我们决定继续部署到生产环境。我们导入文件并检查更改,并注意到这次我们的实体发生了相反的情况,即 Person 实体已更新但 属性 实体没有!

我们尝试发布更改,但没有任何效果。所以最后我们放弃了,不得不通过手动更新生产中的视图来完成部署。

我想知道是否还有其他人经历过这种怪事。非常感谢任何help/suggestion。

您提到您正在部署托管解决方案,并且您的更改没有生效。解决方案中包含的实体之前已部署到目标环境。

如果您之前直接对目标环境进行了任何修改(鉴于您这次这样做,这似乎不太可能),这些更改将在非托管层中进行,默认情况下会覆盖托管解决方案中的更改:

MSDN 说:

Because unmanaged customizations are considered ”above” any managed solution in terms of conflict resolution, organizations installing an update to a managed solution may not see their changes applied because of unmanaged modifications. An option exists to make sure that changes applied by an update to a managed solution are available.

When you release an update to a managed solution, the organization installing the update can select:

  • To preserve any customizations it has applied on top of your managed solution.

  • To overwrite any customizations it has applied on top of your managed solution.

结论:如果您使用托管解决方案,切勿直接对您的目标环境进行任何修改。以后会给你带来麻烦。

感谢 Henrik 回答了我的问题并为我指明了正确的方向。我们设法解决了这个问题。参考this page阅读解决方案。