5 Replies Latest reply on Sep 9, 2010 10:18 AM by HyP3r

    Korrekte nutzung ExecuteEx und Errorlevel

    HyP3r Apprentice
      Hallo Leute,

      ich habe irgendwie das leichte Gefühl das ich was bei der nutzung des Errorlevels falsch mache:

      !Dieses Paket installiert in verstecker Form diese Software:
      !Microsoft .NET Framework 1.1
      !siehe: http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&displaylang=de
      !
      !Überprüfen ob das Paket bereits installiert wurde
      If Exist('%windir%\Microsoft.NET\Framework\sbscmp10.dll')
      ExitProcEx(Done,'Bereits Installiert')
      !
      !Installation durchführen
      ExecuteEx('.\Extern$\dotnetfx.exe /q /c:"install /q"','errorlevel','30')/?/TS
      !
      !Auf neustart des Pakets warten
      If %errorlevel%='194' or %errorlevel%='3010'
      ExitProcEx(Undone,'Warte auf neustart')
      !
      !Paket erfolgreich installiert
      If %errorlevel%='0' or %errorlevel%='1603'
      ExitProc(Done)


      Irgendwie habe ich das gefühl das irgendwie nie auf ExitProcEx(Undone,'Warte auf neustart') rausläuft...

      Obwohl eigentlich das Paket wenn man es per hand installiert immer einen neustart braucht...

      Was sagt ihr?

      mfg
      HyP3r
        • 1. Re: Korrekte nutzung ExecuteEx und Errorlevel
          AlexS Apprentice
          Hallo Unbekannter HyP3r,

          wenn das genau Deine script.inc ist, ist klar was fehlt.

          Befehle, welche nur nach positiver IF-Ausführung abgearbeitet werden sollen, müssen nach rechts eingerückt sein.

          Dazu gibt es in der PAckaging Workbench Symbolleiste Pfeile nach links und rechts. Also einfach die Zeile mit dem ExitProc markieren, Pfeil nach rechts klicken, fertig.

          In der script.inc sollte das dann wie folgt aussehen:
          If Exist('%windir%\Microsoft.NET\Framework\sbscmp10.dll')
          ExitProcEx(Done,'Bereits Installiert')

          Aber bitte nicht direkt in der script.inc editieren!

          Und war es das?

          Grüße,
          Alex
          • 2. Re: Korrekte nutzung ExecuteEx und Errorlevel
            HyP3r Apprentice
            Oh leider nein dieses Forum hat die einfach wegrationalisiert. Die habe ich natürlich gemacht .

            Sonst würde es passen order? Ich habe nur oft gesehen das viele anstatt %errorlevel% %_return% nehmen hat das einen besonderen grund?

            Ähnlich wie der grund das man alle Installationsroutinen unter Extern$ legen muss?

            mfg
            HyP3r
            • 3. Re: Korrekte nutzung ExecuteEx und Errorlevel
              tsauter Apprentice
              Hallo,

              mir fallen folgende Dinge ein:
              1. nicht jedes Programm liefert überhaupt errorlevels zurück. Kommt bei dieser EXE ein errorlevel?
              2. mache EXE forgen sofort einen neuen Prozess, der die eigentliche Installation durchführt, und der erste Prozess beendet sich sofort.
              3. die 1603 abfrage ist:  Fatal Error During Installation. Also kein Erfolg!

              Wenn Du es schaffst alle .NET Komponenten in der richtigen Reihenfolge und mit aktuellen Patches und Sprachen (von 1.1 bis 4) zu installieren bzw auf den Clients zu aktualisieren, dann bist Du mein Helt!
              Die Software ist wirklich sch...!


              Bye
              Thorsten
              • 4. Re: Korrekte nutzung ExecuteEx und Errorlevel
                HyP3r Apprentice
                Also meine 4 Software Pakete für .NET Framework werden schon jetzt in richtiger reihenfolge nacheinander installiert und auch zwischen drinne abgewartet falls ein neustart benötigt wird.

                So schwierig ist das doch nicht

                mfg
                HyP3r
                • 5. Re: Korrekte nutzung ExecuteEx und Errorlevel
                  NicoS1 Master
                  @tsauter:
                  Für Neuinstallationen:
                  Ich bin im Moment am testen... auf www.sereby.org hab ich mir ein aktuelles Update Pack geladen, da ich mal ne relativ aktuelle XP Source wollte (slipstream der aktuellen patches). Dabei hab ich gesehen das der ein "All-In-One" Runtime Package hat, das man mit dem XP Update Package auch gleich noch in die CD integrieren kann. So ein bissl wie NLite für Dummys

                  Dabei sind:
                  .net Framework 1.1 + SP1 + Hotfixes
                  .net Framework 2.0 + SP2 + Hotfixes
                  .net Framework 3.0 + SP1 + Hotfixes
                  .net Framework 3.5 + SP1 + Hotfixes
                  und jeweils die deutschen Language Packs für alle

                  zusätzlich noch C++ 2005 bis 2010, DirectX9.0c, Silverlight, Shockwave, Flash, Java und JSharp. Kann man wohl auch per ini file Customizen was alles installiert werden soll und was nicht.

                  Schaut bisher ganz gut aus... aber man sieht die Installation während dem Setup, aber das stört mich persönlich nun nicht, läuft trotzdem unattended.

                  Hintergrund des ganzen warum ich das versuch ist, dass wir sporadisch das Problem haben (so ca. jeder 4. Client) dass sich das .net Framework Setup aufhängt und rein gar nichts mehr macht. Enteo läuft irgendwann zwar weiter (timeout beim runas), aber dann ist a) der Windows Installer blockiert und das nächste MSI Paket hängt oder b) Pakete die .net Vorraussetzen funktionieren nicht. Hab schon alles möglich probiert, auch was MS empfohlen hat... aber ohne zusätzliche Reboots würden wir das nie in griff bekommen. Deshalb wollte ich für mich jetzt mal schauen das .net Framework schon irgendwie im XP Setup mit integriert wird ;-)

                  Wenn alles sauber läuft bericht ich nochmal.