2

特に、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を含めると失敗します。

誰かが手がかりを与えることができますか?

4

1 に答える 1

3

いくつかの検索の後。ここで、この問題は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>
于 2013-08-01T02:03:27.437 に答える