导入解决方案时出现"无法为此组件完成此操作"错误

本文提供了错误的解决方法:由于在Microsoft Dynamics 365 中导入解决方案时可能会发生其托管属性的配置,因此无法为此组件完成此操作。

适用于:   Microsoft Dynamics 365
原始 KB 编号:   4464328

症状

尝试在 Microsoft Dynamics 365 中导入解决方案时,解决方案导入失败,并出现以下消息:

解决方案导入失败:[解决方案名称]

在错误对话框中,将显示失败状态,"详细信息"列中将显示 以下消息:

由于此组件的托管属性的配置,您无法为此组件完成此操作

如果您选择"下载日志文件" 并查看"组件"选项卡Excel,则会看到一条消息,例如:

状态列:失败
ErrorCode:0x8004F026
ErrorText:当前操作 (Update) 中的当前组件 (name=Entity, id=[GUID] 的评估在托管属性评估条件期间失败:当前操作中当前组件) ( (name=Entity, id=[GUID] 的评估在托管属性评估条件期间失败:托管属性名称:[ManagedPropertyLogicalName];组件名称:实体;属性名称:[ManagedPropertyLogicalName];

原因

Microsoft 注意到一个问题,即导入包含营销列表、SystemUser、Team、CustomerAddress、Position、TransactionCurrency 实体等实体的解决方案时可能会发生此错误。 如果您的解决方案包含其中一个实体,请参阅本文的"解决方案"部分。

此错误指示您尝试在目标组织中使用同一实体导入的实体的托管属性不匹配。 目标实体属性与源实体属性之间的不匹配可能与源组织的版本比目标组织的版本 (示例 8.2 到 9.0) 。 如果已对目标组织进行系统升级并更新了托管实体属性,则解决方案将失败(如果它包含此实体的属性的不同定义)。

示例: 在 Microsoft Dynamics 365 版本 8.2 中,将创建一个与市场营销列表实体有关系的自定义实体。 在 Microsoft Dynamics 365 9.0 版中,应用了系统更新,以将市场营销列表实体的托管属性更改为在 Microsoft Dynamics 365 移动应用 (名称:IsVisibleInMobileClient,逻辑名称:canmodifymobileclientvisibility) 更改为 true。 托管解决方案从包含自定义实体的 8.2 组织导出,默认情况下,市场营销列表实体定义作为依赖项包含在解决方案中。 将托管解决方案导入到 Microsoft Dynamics CRM 9.0 组织中时,属性定义不匹配。 由于目标组织中实体是托管的,并且托管属性不可更新,并且无法从不同的发布者更新,因此不能更改为解决方案中的版本,并显示错误。

解决方案

Microsoft 将针对"原因"部分中提到的实体发布此问题的修补程序。 如果其中一个实体是解决方案的一部分,则在此期间可以使用一种解决方法。 可以修改解决方案文件以更改源组织实体属性值以匹配目标组织实体属性。

备注

此解决方案仅适用于此解决方案的导入。 如果解决方案再次从源组织导出,则此编辑必须再次完成。 这应该是一个临时解决方案,直到修补程序发布。

  1. 解压缩解决方案文件。

  2. 在文本customizations.xml打开文件

  3. 搜索 LogicalCollectionName (示例:列表、团队等。)

    <EntitySetName>lists</EntitySetName>

  4. 向下滚动并查找错误消息中提到的属性名称。 对于"市场营销列表"实体,该属性很可能为 IsVisibleInMobileClient。 对于"原因"部分中提到的其他实体,该字段将为 IsReadOnlyInMobileClient。

    <IsVisibleInMobileClient>0</IsVisibleInMobileClient>

  5. 将值更改为与当前设置相反 (示例 :0 更改为 1.)

    <IsVisibleInMobileClient>1</IsVisibleInMobileClient>

  6. 将所有文件压缩到一个新的已编辑解决方案中,并使用此解决方案导入。

详细信息

在错误对话框中标识目标组织中不匹配的实体。 若要检索不匹配的 [ManagedPropertyLogicalName] 属性值,请使用 Web API 检索 GUID 标识的实体:

  1. 打开 Web 浏览器,以访问尝试导入解决方案的目标组织的 Microsoft Dynamics 365 Web 应用程序。

  2. 复制选项卡 (右键单击选项卡,然后选择"复制) ,以便您可以使用经过身份验证的浏览器会话。

  3. 在新建选项卡中,运行以下命令,将 [GUID] 替换为错误详细信息中的 GUID 值,将 [organizationURL] 替换为组织的 URL: https://[organizationURL]/api/data/v8.2/EntityDefinitions([GUID])

  4. 在 [ManagedPropertyLogicalName] 中搜索字符串的输出。

  5. 对源组织执行相同的过程,并比较错误消息中提到的属性值。

示例:

错误消息:

当前操作中的当前组件 (name=Entity、id=efd3a52d-04ca-4d36-a54c-2a26a64f5571) 在托管属性评估条件期间) (更新) 失败:当前组件 (name=Entity 的评估失败, id=efd3a52d-04ca-4d36-a54c-2a26a64f5571) 在当前操作中 (Update) 在托管属性评估条件期间失败:托管属性名称:canmodifymobileclientvisibility;组件名称:实体;属性名称:canmodifymobileclientvisibility;

使用查询时 https://[organizationURL]/api/data/v8.2/EntityDefinitions(efd3a52d-04ca-4d36-a54c-2a26a64f5571) ,实体 DisplayName 为 "市场营销列表":

 "DisplayName":{
 "LocalizedLabels": [
 {
 "Label": "Marketing List",
 "LanguageCode": 1033,
 "IsManaged": true,
 "MetadataId": "<ID>",
 "HasChanged": null
 }
 ],
 The entities LogicalName is "list":
 "LogicalName": "list",
 And the entitiesLogicalCollectionName is "lists"
 "LogicalCollectionName": "lists",
 t.