我正在使用Wix XmlConfig更改XML文件,尤其是。
以下代码将抛出异常:
SchedXmlConfig:错误0x8007007a:无法复制XmlConfig记录ID 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 时它会失败。
有人能给出一些线索吗?
答案 0 :(得分:3)
经过一番搜索。这里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>