我们是一个房屋协会。我们使用CRM 2016 SP1。我们的开发和QA环境是单服务器配置,分段和生产是带有负载平衡器的多服务器配置。我们在质量保证,分期和生产方面的定制解决方案得到了管理。
我们需要为我们的两个实体Person和Property更新“快速查找活动”视图,并在我们的登台和生产环境中添加一些额外的搜索列。
我通过转到设置 - >解决方案 - > [自定义解决方案] - >实体 - > [自定义实体] - >视图 - >快速,在Dev环境中将新列添加到这些实体的视图中查找活动[实体] - >添加查找列。我对两个实体做了同样的事情。
要将更新作为补丁部署到其他环境,我导出了一个独立的解决方案文件,该文件仅包含具有更新视图的Person和Property实体。然后我将解决方案文件导入QA环境进行测试。
导入后在QA中发布了更改后,我在默认解决方案中检查了实体的快速查找活动视图(设置 - >自定义 - >自定义系统 - > [自定义解决方案] - >实体 - &gt ; [自定义实体] - >视图)。我注意到Property实体已更新了更改,但Person实体未更新。没有意义。
花了一些时间在互联网上搜索无济于事的答案,我们决定在分期中试用补丁解决方案。因此我们导出了解决方案文件,但在发布更改之前,我们决定检查更新。令我们惊讶的是,两个实体都已更新。所以我们没有公布这些变化。
对结果感到满意并将问题归咎于我们的QA环境,我们决定继续部署到生产环境。我们导入了文件并检查了更改,并注意到这次发生在我们的实体周围,即Person实体已更新,但Property实体没有!
我们尝试发布更改,但没有任何区别。所以最后我们放弃了,不得不通过手动更新生产中的视图来完成部署。
我想知道是否有其他人经历过这种奇怪。非常感谢任何帮助/建议。
答案 0 :(得分:2)
您提到您正在部署托管解决方案,并且您的更改未生效。解决方案中包含的实体先前已部署到目标环境中。
如果您之前已经直接对目标环境进行了任何修改(这次尝试似乎不太可能),这些更改将在非托管层中,默认情况下会覆盖托管解决方案中的更改:
MSDN说:
因为非托管自定义被视为“高于”任何托管 解决冲突的解决方案,组织安装 更新到托管解决方案可能看不到他们的更改,因为 非托管修改。存在一个选项以确保更改 通过更新应用于托管解决方案是可用的。
当你 发布组织安装的托管解决方案的更新 更新可以选择:
保留已在托管解决方案上应用的所有自定义设置。
覆盖任何自定义项 已在您的托管解决方案上应用。
总之:如果您使用托管解决方案,从不直接对目标环境进行任何修改。它会在以后引起你的问题。
答案 1 :(得分:0)
感谢Henrik回答了我的问题并让我朝着正确的方向前进。我们设法解决了这个问题。请参阅this page以阅读解决方案。