Einzelnen Beitrag anzeigen

TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#1

NSIS Installer schreibt nicht alles in XML Datei

  Alt 5. Feb 2009, 09:58
Ich habe für meine Anwendung einen Installer gebaut mit dem Tool NSIS (Nullsoft Scriptable Install System) mit Hilfe
eines XML Plugins sollen ein paar Dinge während der Installtion in eine Einstellungsdatei gespeichert werden.

Ansich keine Sache, nur muß ich bei einem Knoten ein Attribut und auch den 'Text' ändern jedoch klappt immer nur eins
nicht beides. Ich hoffe jemand hat eine idee woran es liegen könnte.

Die XML Datei sieht folgender maßen aus...
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<settings>
    <app>
        <window maximized="true">
            <position left="15" top="45" width="1205" height="853" />
        </window>
        <Lang code="de" id="0" />
        <ExportDir />
    </app>
    <dbase>
        <localDataDir ProgDir="false" AppDir="true" Directory="false" />
        <remoteDataDir NetBackup="true">C:\Temp\DOH</remoteDataDir>
    </dbase>
</settings>

Im installer werden erst 3 RadioButtons abgefragt und dann die Attribute vom Knoten 'localDataDir' gespeichert
was auch soweit klappt. Im zweiten Schritt soll das Attribut 'NetBackup' vom Knoten 'remoteDataDir' auf "false"
gesetzt werden sowie der zuvor vom Anwender eingebene Pfad als Knoten Text gespeichert werden. Zur zeit Funktionier
nur letzters.

Code:
          ;Flags auslesen
          !insertmacro MUI_INSTALLOPTIONS_READ $TempResult "io.ini" "Field 3" "State"
          ${IF} $TempResult == 1
            StrCpy $bProgDir true
          ${ELSE}
            StrCpy $bProgDir false
          ${ENDIF}
         
          !insertmacro MUI_INSTALLOPTIONS_READ $TempResult "io.ini" "Field 4" "State"
          ${IF} $TempResult == 1
            StrCpy $bAppDir true
          ${ELSE}
            StrCpy $bAppDir false
          ${ENDIF}
         
          !insertmacro MUI_INSTALLOPTIONS_READ $TempResult "io.ini" "Field 5" "State"
          ${IF} $TempResult == 1
            StrCpy $bDirectory true
          ${ELSE}
            StrCpy $bDirectory false
          ${ENDIF}
         
        ;Verzeichnis für Geräte-Daten auslesen
          !insertmacro MUI_INSTALLOPTIONS_READ $Dir "io.ini" "Field 8" "State"
          StrCpy $bNetBackup false

        ;Einstellungen in XML Datei speichern...
        ${xml::LoadFile} "$DYNFILES\${FILE_DYN_SETTINGS}" $0

        ${xml::GotoPath} "/settings/dbase/localDataDir" $0
        ${xml::FirstChild} "" $0 $0
        ${xml::SetAttribute} "ProgDir" $bProgDir $0
        ${xml::SetAttribute} "AppDir" $bAppDir $0
        ${xml::SetAttribute} "Directory" $bDirectory $0

        ${xml::GotoPath} "/settings/dbase/remoteDataDir" $0
        ${xml::FirstChild} "" $0 $0
        ${xml::SetAttribute} "NetBackup" $bNetBackup $0
        ${xml::SetNodeValue} $Dir
       
        ${xml::SaveFile} "$DYNFILES\${FILE_DYN_SETTINGS}" $0

        ${xml::Unload}
Ich bin zur Zeit total ratlos wieso das eine klappt jedoch das andere nicht bzw. nicht beides zusammen.
  Mit Zitat antworten Zitat