计算此组件的依赖项时出错。 将解决方案导入 Microsoft Dynamics 365 时出现缺少组件 ID [GUID] 错误

本文提供了尝试在 Microsoft Dynamics 365中导入解决方案时发生的错误的解决方案。

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

症状

尝试在 Dynamics 365 中导入解决方案时,会收到以下错误:

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

还可能会看到错误代码 8004F036 的引用。 如果在网格中查看“详细信息”列,会看到如下消息:

“计算此组件的依赖项时出错。 缺少组件 ID [GUID]”

如果选择“ 下载日志文件 ”并在 Excel 中查看“ 组件 ”选项卡,则会看到如下消息:

“依赖组件 SystemForm (Id=[GUID 1]) 不存在。 尝试将其与 SystemForm (Id=[GUID 2] 关联失败,) 为依赖项。 缺少依赖项查找类型 = PrimaryKeyLookup。”

原因

如果要导入的解决方案包含依赖于另一个组件的组件,但该依赖组件不在要导入的解决方案中,并且目标组织中不存在,则会发生此错误。

示例:已从开发环境导出解决方案,并尝试将其导入生产环境。 如果解决方案包含组件 (系统窗体) 引用另一个依赖组件 (例如视图或另一个系统窗体) ,则如果该依赖组件不在解决方案中且不在目标组织中,则会发生此错误。

此错误指示解决方案或目标组织中不存在 ID 为 [GUID 1] 的必需依赖组件。 解决方案导入过程尝试将此组件关联到现有组件 [GUID 2] 作为子依赖项。 由于组件 [GUID 1] 不存在,因此无法进行关联。

另一个可能的原因

如果收到此类错误,并且详细信息引用模板作为依赖组件,则如果模板是使用在导入解决方案的环境中未启用的语言开发的,则可能会发生此错误。 例如:如果模板是用英语创建的,但在要导入解决方案的环境中未启用英语,则可能是此错误的另一个原因。 若要启用其他语言,请导航到 “设置”,选择“ 管理”,然后选择“ 语言”。

解决方案

使用以下选项之一来更正此问题:

  1. 将缺少的组件添加到目标组织:
    使用解决方案导入将缺少的组件添加到目标组织。
  2. 将缺少的组件添加到解决方案:
    如果组件位于源组织中,请确保解决方案在创建时包含此组件。
  3. 删除组件的依赖项:
    如果目标组织中不需要缺少的组件,请删除源中的组件并重新创建解决方案。

如果不确定缺少哪个组件,请执行以下步骤:

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

  2. 打开 solution.xml 文件。

  3. 从错误详细信息复制 GUID 1 值,并在 solution.xml 文件中搜索该值。 可以在 XML 中找到一个部分,如以下示例所示:

    <MissingDependency>
    
    <Required key="591" type="60" displayName="[Component Name 1]" parentDisplayName="[Parent Entity]" solution="[Solution Name]" id="[GUID 1]" />
    
    <Dependent key="34" type="60" displayName="[Component Name 2]" parentDisplayName="[Child Entity]" id="[GUID 2]" />
    
    </MissingDependency>
    

    上面显示的 XML 指示解决方案缺少 ID 为 [GUID 1] 的名为 [组件名称 1] 的依赖组件。 由于此解决方案中不存在此组件,因此它必须存在于目标组织中才能成功导入。

示例解析

示例错误:

“依赖组件 SystemForm (Id=2e28cc31-d344-412d-b393-3e108b23363a) 不存在。 尝试将其与 SystemForm 关联失败, (Id=6d2cf5e0-c3bd-40fb-9842-b5c67409e23b) 作为依赖项。 缺少依赖项查找类型 = PrimaryKeyLookup。”

打开 solution.xml 文件并搜索 2e28cc31-d344-412d-b393-3e108b23363a。 然后,你将找到以下 XML:

<MissingDependency>

<Required key="4" type="60" displayName="Example Dependency" parentDisplayName="Parent" solution="Active" id="{2e28cc31-d344-412d-b393-3e108b23363a}" />

<Dependent key="5" type="60" displayName="Information" parentDisplayName="Child" id="{6d2cf5e0-c3bd-40fb-9842-b5c67409e23b}" />

</MissingDependency>

在上面的示例中,解决方案缺少名为 “示例依赖项”的快速视图窗体,该窗体是名为 Parent 的实体的组件。 名为 Child 的实体包含名为 “信息”的窗体。 “信息”窗体依赖于示例依赖项快速视图窗体。 因此,可以使用以下解决方法:

  1. 在尝试导入此解决方案之前,将另一个解决方案导入到具有实体示例依赖项快速视图窗体的目标组织。
  2. 确保示例 依赖项 快速视图窗体包含在此解决方案中,这可能需要包含 实体和所需组件。
  3. 从源组织中的实体的信息窗体中删除示例依赖项快速查看表单依赖项,然后重新创建解决方案。