Dynamics crm Dynamics CRM 2011:托管解决方案或部署从开发到PRD的更改

Dynamics crm Dynamics CRM 2011:托管解决方案或部署从开发到PRD的更改,dynamics-crm,dynamics-crm-2011,microsoft-dynamics,Dynamics Crm,Dynamics Crm 2011,Microsoft Dynamics,对于Dynamics CRM 2011,Microsoft建议通过将更改打包为托管(或非托管)解决方案,将实体定制从开发转移到PRD。非托管是不好的,因为您无法在需要时删除实体(删除解决方案只会删除容器,而解决方案中包含的实体将保留)。在培训期间的大多数实验室示例中,您需要自定义系统,然后将自定义实体作为托管解决方案导出,然后将其导入生产。这种基于解决方案的方法是干净的,可以更容易地控制PRD中的内容,将相关实体捆绑在一起,跟踪依赖关系,等等,所以我明白了 但是,有时您需要在DEV服务器上转储组

对于Dynamics CRM 2011,Microsoft建议通过将更改打包为托管(或非托管)解决方案,将实体定制从开发转移到PRD。非托管是不好的,因为您无法在需要时删除实体(删除解决方案只会删除容器,而解决方案中包含的实体将保留)。在培训期间的大多数实验室示例中,您需要自定义系统,然后将自定义实体作为托管解决方案导出,然后将其导入生产。这种基于解决方案的方法是干净的,可以更容易地控制PRD中的内容,将相关实体捆绑在一起,跟踪依赖关系,等等,所以我明白了


但是,有时您需要在DEV服务器上转储组织并从PRD恢复(以解决特定于数据的问题或出于其他原因)。我们通过禁用,然后删除开发组织,然后要求DBA团队从生产中恢复CRM数据库,然后将组织导入到开发服务器。但是,如果我们实施这种基于“托管解决方案”的变更迁移过程,我们是否会在转储DEV并从PRD重新创建它(这些解决方案处于只读模式)之后失去更改实体的能力?如果我们在这些托管解决方案中启用自定义,我们是否能够在不删除整个解决方案的情况下向解决方案中添加新实体或从解决方案中删除实体?因为我认为托管解决方案被视为单个代码单元,所以要么全部删除,要么不删除。有兴趣了解其他人是如何解决此问题的。

我们处理此问题的一种方法是使用单独的clean dev机器,我们使用该机器作为“配置主机”管理配置。该机器不用于任何其他开发或测试工作。plugsin等的dev机器可以从prod重建,但这台机器仍然是所有解决方案的主控机器。这不是一个理想的解决方案,但它确实避免了将托管解决方案转换为非托管解决方案的“功能差距”(可能通过一些密码工具)

我建议不要在这些类型的开发人员中使用解决方案来测试产品

如果对此不确定,请尝试删除开发环境中的实体,并将更改发布到生产环境中

解决方案是包容性的,这意味着CRM不会删除在解决方案中删除的字段和实体

删除实体的唯一方法是卸载解决方案,从而删除解决方案所涵盖的所有实体中的生产数据

虽然理论上解决方案似乎很完美,但它们只对第三方供应商有用

通过卸载解决方案实现回滚的目标是白日梦。考虑涉及数据转换的数据模型更新。没有什么神奇的功能可以扭转这种局面

恢复备份是一种更简单、更可靠的方法