2 Replies Latest reply on Oct 5, 2018 7:07 AM by SitzRieSe

    2017.1 - Variable already set in uninstall mode

    SitzRieSe Expert

      Hi,

       

      kann mir Jemand folgendes Verhalten erklären?

       

      19:37:07.299 2    ---->Starting uninstallation of "Inst - Microsoft Visual Studio 2017 Tools for Applications 15.0.26717"

       

      19:37:07.314 2    -> Set('SetupFile','vsta_setup_x86.exe')

       

      19:37:07.314 2    -> Set('SetupFile64','vsta_setup_x64.exe')

       

      19:37:07.330 2    -> Set('SetupParameter','/q')

       

      19:37:07.330 2    -> Set('DisplayNameValue','Microsoft Visual Studio Tools for Applications 2017')

       

      19:37:07.330 2    -> Set('UninstallParameter','0')

       

      19:37:07.330 2    -> Set('RegPathResult','')
      19:37:07.330 0     Variable [RegPathResult] already set in uninstall mode, probably from the registry, do not overwrite through the script command

       

      19:37:07.330 2    -> Set('RegistryValue','DisplayName')

       

      19:37:07.330 2    -> Set('RegistryPath','HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall')

       

      19:37:07.346 2    -> Set('CheckAllowed','0')
      19:37:07.346 0     Variable [CheckAllowed] already set in uninstall mode, probably from the registry, do not overwrite through the script command

       

      19:37:07.346 1    Evaluating condition "not CheckInstallMode(imReinstall)"
      19:37:07.346 2    Condition TRUE-> entering IF part

       

      19:37:07.346 2    ->  Set('CheckAllowed','1')
      19:37:07.346 0     Variable [CheckAllowed] already set in uninstall mode, probably from the registry, do not overwrite through the script command

       

      19:37:07.346 1    Evaluating condition "CheckInstallMode(imUpdate)"
      19:37:07.346 2    Condition FALSE  -> skipping IF part
      19:37:07.346 2    Skipping command : Set

       

      19:37:07.346 1    Evaluating condition "CheckInstallMode(imUninstall)"
      19:37:07.346 2    Condition TRUE-> entering IF part

       

      19:37:07.346 2    ->  Set('CheckAllowed','0')
      19:37:07.346 0     Variable [CheckAllowed] already set in uninstall mode, probably from the registry, do not overwrite through the script command

       

      Ich hab diese Meldung noch nie gesehen und verstehe nicht wieso die nun bei diesem Paket auftritt. Zumal er das Ja nicht mal bei allen Variablen macht. Effekt ist in meinem Fall das er in einen völlig falschen Bereich im Skript reinspringt...

       

      Danke euch!

       

      Gruß


      Alex

        • 1. Re: 2017.1 - Variable already set in uninstall mode
          Klaus Salger Expert

          Hi Alex,

           

          dass der Installer im Deinstallationsmodus die Werte aus der Registry nimmt wenn da welche sind ist denke ich normal.

          Dass die Logmeldung nur bei manchen Variablen erscheint finde ich komisch - kann ich nicht erklären.

          Entweder wird nur nicht geloggt oder die Variablenwerte werden tatsächlich nicht aus der Registry genommen, weil sie da z.B. bei der Installation nicht geschrieben wurden.

          Das kannst du ja mal untersuchen.

           

          Wenn dich die gespeicherten Variablen in diesem Fall stören, dann könntest du bei dem betroffenen Paket den Haken bei "Deinstallationsinfos schreiben" wegnehmen, dann werden die Variableninhalte nicht mehr in die Registry geschrieben.

          Alternativ könntest du auch am Anfang eine Fallunterscheidung machen, den Installationsteil nur durchlaufen wenn es keine Deinstallation ist und bei der Deinstallation direkt mit dem BeginUninstallScript-Teil weitermachen. Da sollte das Variablenhandling ja dann wieder ganz normal funktionieren.

           

          Ciao

            Klaus

          • 2. Re: 2017.1 - Variable already set in uninstall mode
            SitzRieSe Expert

            Hi Klaus,

             

            ich werde das jetzt mal als einmaligen Fehler hin nehmen. Mein Skript sieht nämlich so aus:

             

            Set('CheckAllowed','0')

            !

            If not CheckInstallMode(imReinstall)

            Set('CheckAllowed','1')

            !

            If CheckInstallMode(imUpdate)

            Set('CheckAllowed','1')

            !

            If CheckInstallMode(imUninstall)

            Set('CheckAllowed','0')

            !

            ! === Enable for x86 Check

            If %CheckAllowed%='1'

            RegReadValueEx('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%RegKey%','DisplayVersion','ProgVersion',)

            If %ProgVersion%='%DisplayVersionValue%'

              ExitProcEx(Done,'%CurrentPackage.Object.Name% was already installed!')

             

             

            Und in dem Problem Fall kommt immer "CheckAllow=1 raus. Damit geht er auch in dem Uninstall Part in diesen Bereich was er eigtl garnicht soll. Selbst wenn er zuvor die Variable schon geschrieben hat, darf da in keinem Fall 1 rauskommen und das hab ich auch noch nie woanders so beobachtet... Sehr seltsam...