Dynamics crm 2011 如何安全地向Opportunity添加属性?

Dynamics crm 2011 如何安全地向Opportunity添加属性?,dynamics-crm-2011,dynamics-crm,dynamics-crm-2013,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm 2013,我正在构建一个插件,该插件利用Dynamics 2013中的新业务流程,为了充分利用易于使用的检查列表样式菜单,我向Dynamics CRM中的默认Opportunity实体添加了两个新属性 我在插件的customizations.xml文件中通过在实体xml的EntityInfo->Entity->attributes部分下向Opportunity实体添加属性实现了这一点 将此字段添加到Opportunity中的效果与预期一样,尽管我在卸载插件时遇到了问题 由于这个插件将被广泛使用,我不能期望

我正在构建一个插件,该插件利用Dynamics 2013中的新业务流程,为了充分利用易于使用的检查列表样式菜单,我向Dynamics CRM中的默认Opportunity实体添加了两个新属性

我在插件的customizations.xml文件中通过在实体xml的EntityInfo->Entity->attributes部分下向Opportunity实体添加属性实现了这一点

将此字段添加到Opportunity中的效果与预期一样,尽管我在卸载插件时遇到了问题

由于这个插件将被广泛使用,我不能期望用户将它永远保留在他们的系统上

但是,卸载插件后,将无法再在CRM 2013 Online中查看商机。当我尝试查看其中一个时,会得到以下结果:

关键

查询生成器错误

指定字段在Microsoft Dynamics CRM中不存在

是否可以在customizations.xml文件中执行某些操作,以确保一旦卸载插件解决方案,Dynamics CRM将不再引用这些字段


注意:此问题发生在一个全新的Dynamics CRM 2013(试用版)实例上,该插件仅安装/卸载,因此,如果您要通过UI进行此更改,则没有其他自定义链接到该插件的更改并导致崩溃,它将阻止您删除这些字段,直到所有依赖项也被删除。因为您选择在没有UI帮助的情况下执行此操作,所以它正在破坏您。如果您返回并通过UI进行此更改,那么customizations.xml文件应该得到正确更新,您应该可以继续(否则它会出错并指出仍然存在依赖项的位置,从而使您可以轻松地进行修复).

为什么要通过自定义xml而不是通过CRM的UI添加字段?因为我正在构建一个插件解决方案,该解决方案将安装在各种帐户上。对定制的原始更改是通过UI完成的。然后我导出了解决方案并将所有缺少的依赖项添加到插件包中。查询生成器错误通常是在视图、表单或任何其他生成FetchXML语句以获取数据的对象尝试请求一个不存在(不再存在)的字段时出现的。如果您知道删除了哪些字段,请对所有自定义项进行完整导出,解压缩并在customizations.xml文件中搜索这些字段。您很可能会在保留引用的视图中找到一两个引用。找到后,打开表单/视图设计器,删除字段/列,全部发布,然后查看是否有帮助。