元素 savedquery 的内容不完整。 预期可能的元素列表:导入 Microsoft Dynamics 365 解决方案时发生 LocalizedNames 错误

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

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

症状

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

“无法导入此解决方案包,因为它包含无效的 XML。 可以尝试使用架构验证错误中找到的信息手动编辑 XML 内容来修复文件,也可以联系解决方案提供商。 错误代码 8004801a。

如果选择 “技术详细信息”,则会看到以下消息以及其他错误详细信息:

“压缩解决方案包文件中customizations.xml文件的架构验证失败。 若要手动验证和编辑文件,可以 在此 处下载架构文件,并使用支持架构验证的 XML 编辑器获取更多详细信息。

显示更多详细信息的文本框包括以下信息:

“元素'savedquery'的内容不完整。 预期可能的元素列表:“LocalizedNames”。

文本框还包括额外的详细信息,例如用于保存查询的 FetchXML 的一部分 (视图) 。

原因

此错误指示解决方案中包含已保存的查询 (视图) ,并且该已保存查询定义的 XML 缺少 LocalizedNames 部分。 如果有人手动修改了customizations.xml文件,则可能会发生这种情况。

解决方案

若要允许解决方案成功导入,需要添加 XML 中保存查询的 LocalizedNames 部分。

  1. 提取要导入的解决方案.zip文件的内容。

  2. 在文本编辑器中打开customization.xml文件。

  3. 请参阅应包含已保存查询中 fetchxml 部分的错误详细信息。 可能需要找到此 XML 的唯一部分,然后在customization.xml文件中搜索以查找匹配的已保存查询。

  4. 找到错误详细信息中引用的已保存查询后,请更新 XML 以包括 LocalizedNames 部分。 下面提供了保存查询的示例,其中包含缺失部分。

    <savedquery unmodified="1">
                <isquickfindquery>0</isquickfindquery>
                <isprivate>0</isprivate>
                <isdefault>0</isdefault>
                <savedqueryid>{65ffaf9a-e8c5-432d-860b-32f841b00d87}</savedqueryid>
                <queryapi></queryapi>
                <layoutxml>
                  <grid name="resultset" jump="name" select="1" icon="1" preview="1">
                    <row name="result" id="accountid">
                      <cell name="name" width="300" />
                      <cell name="telephone1" width="100" />
                      <cell name="address1_city" width="100" />
                      <cell name="primarycontactid" width="150" />
                      <cell name="accountprimarycontactidcontactcontactid.emailaddress1" width="150" disableSorting="1" />
                      <cell name="statecode" width="100" />
                    </row>
                  </grid>
                </layoutxml>
                <querytype>0</querytype>
                <fetchxml>
                  <fetch version="1.0" output-format="xml-platform" mapping="logical">
                    <entity name="account">
                      <attribute name="name" />
                      <attribute name="telephone1" />
                      <attribute name="address1_city" />
                      <attribute name="primarycontactid" />
                      <link-entity alias="accountprimarycontactidcontactcontactid" name="contact" from="contactid" to="primarycontactid" link-type="outer" visible="false">
                        <attribute name="emailaddress1" />
                      </link-entity>
                      <attribute name="statecode" />
                    </entity>
                  </fetch>
                </fetchxml>
                <IntroducedVersion>9.0.0.0</IntroducedVersion>
                <LocalizedNames>
                  <LocalizedName description="All Accounts" languagecode="1033" />
                </LocalizedNames>
              </savedquery>
    
  5. 更正 XML 后,选择从解决方案文件中提取的所有组件,并将其发送到新的.zip文件。

  6. 再次尝试导入解决方案。

注意

如果有多个已保存的查询 (视图) 缺少 <LocalizedNames> 部分,则可能需要为每个视图重复这些步骤。

更多信息

如果不确定要为本部分提供的正确保存查询 (视图) 名称,可以使用 savedqueryid 值和 Dynamics 365 WebAPI 查找名称。 在上面的示例中 savedqueryid ,值为 65ffaf9a-e8c5-432d-860b-32f841b00d87。 然后,可以在 Web 浏览器中访问以下 URL,以返回视图的名称:

https://<your dynamics 365 URL>/api/data/v9.0/savedqueries(<savedqueryid>)?$select=name

示例:

https://contoso.crm.dynamics.com/api/data/v9.0/savedqueries(65ffaf9a-e8c5-432d-860b-32f841b00d87)?$select=name