错误 0x8007007a:无法复制 XmlConfig 记录 ID

Posted

技术标签:

【中文标题】错误 0x8007007a:无法复制 XmlConfig 记录 ID【英文标题】:Error 0x8007007a: failed to copy XmlConfig record Id 【发布时间】:2013-08-01 02:01:05 【问题描述】:

我正在使用 Wix XmlConfig 来更改 XML 文件,尤其是。

以下代码会抛出异常:

SchedXmlConfig: SchedXmlConfig:错误 0x8007007a:未能读取 XmlConfig 表 错误 25540。配置 XML 文件时出错。

<util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC_id"
                File="$(var.ApplicationHostConfigPath)"
                ElementId="AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC"
                Name="id"
                Value="Date-UTC"/>

<!--<util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC_logHeaderName"
                File="$(var.ApplicationHostConfigPath)"
                ElementId="AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC"
                Name="logHeaderName"
                Value="date"/>-->

<util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC_required"
                File="$(var.ApplicationHostConfigPath)"
                ElementId="AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC"
                Name="required"
                Value="false"/>

<util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC_defaultValue"   
                File="$(var.ApplicationHostConfigPath)"
                ElementId="AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC"
                Name="defaultValue"
                Value="false"/>

上面的代码在没有 AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC_defaultValue 项的情况下可以正常工作。

但包含 AdvancedLogging_InterACT_LogDefinition_selectedFields_Date_UTC_defaultValue 时会失败。

有人可以提供一些线索吗?

【问题讨论】:

【参考方案1】:

经过一番搜索。在这里,post 发现问题是由 XmlConfig“Id”的长度引起的。 解决办法是减少id的长度。 精炼代码如下。

    <!--<logField id="Date-UTC" logHeaderName="date" required="false" defaultValue="" />-->



  <util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_Date_UTC"
          File="$(var.ApplicationHostConfigPath)"
          Action="create"
          Node="element"
          ElementPath="/configuration/location[\[]@path='InterACT'[\]]/system.webServer/advancedLogging/server/logDefinitions/logDefinition[\[]@baseFileName='InterACT'[\]]/selectedFields"
          Name="logField"
          On="install"
          Sequence="1006">

    <util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_Date_UTC_id"
                    File="$(var.ApplicationHostConfigPath)"
                    ElementId="AdvancedLogging_InterACT_LogDefinition_Date_UTC"
                    Name="id"
                    Value="Date-UTC"/>

    <util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_Date_UTC_logHeaderName"
                    File="$(var.ApplicationHostConfigPath)"
                    ElementId="AdvancedLogging_InterACT_LogDefinition_Date_UTC"
                    Name="logHeaderName"
                    Value="date"/>

    <util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_Date_UTC_required"
                    File="$(var.ApplicationHostConfigPath)"
                    ElementId="AdvancedLogging_InterACT_LogDefinition_Date_UTC"
                    Name="required"
                    Value="false"/>

    <util:XmlConfig Id="AdvancedLogging_InterACT_LogDefinition_Date_UTC_defaultValue"
                    File="$(var.ApplicationHostConfigPath)"
                    ElementId="AdvancedLogging_InterACT_LogDefinition_Date_UTC"
                    Name="defaultValue"
                    Value="false"/>
  </util:XmlConfig>

【讨论】:

为未来的读者。我没有找到确切的数量截止,我我想通了,75个字符太大,(例如:

以上是关于错误 0x8007007a:无法复制 XmlConfig 记录 ID的主要内容,如果未能解决你的问题,请参考以下文章

UITableView中的deleteObject错误,无法复制

ASP.NET 文件夹发布错误 - 无法复制文件

为啥会显示 MYSQL 错误“无法添加外键约束”? [复制]

无法将文件从包复制到 Documents 目录,为啥 fileExistsAtPath 返回错误?

雪花:加载时出现错误限制时无法复制?

为啥错误 LNK2001:在这种情况下无法解析外部符号? [复制]