Announcement

Collapse
No announcement yet.

VC++ 2010 Sp1 fails OS Dependency under Windows 8.1 ... at times

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • VC++ 2010 Sp1 fails OS Dependency under Windows 8.1 ... at times

    I have two similar installer for related SKUs that install VC++ 2010 SP1 x86. They use the same module. On Windows 8.1, one works, the other fails due an insufficient version. Puzzling...

    Since we require Windows 7 or higher for installation, I am bypassing the version check in the dependency module, since it is not really needed. But I am still wondering, why that is happening.

    This is on a system freshly installed with 8.1

  • #2
    I just rechecked, it is failing on all 8.1 systems.

    Comment


    • #3
      The Windows version returned for 8.1 is 6.3. The installer failing SHOULD fail based on the code. Why does the other work???

      Crazy!

      Comment


      • #4
        What version of Setup Factory are you using? Can you attach the installation log files?

        I get this on Windows 8.1 x64 for the 32-bit dependency:

        Code:
        [03/16/2015 17:21:32] Notice	Setup engine version: 9.5.0.0
        ...
        [03/16/2015 17:21:32] Success	Detection Script: Visual C++ 2010 SP1 (32-bit)
        [03/16/2015 17:21:32] Info	Visual C++ 2010 SP1 (32-bit) Module: Detection script started.
        [03/16/2015 17:21:35] Info	Visual C++ 2010 SP1 (32-bit) Module: Visual C++ 2010 SP1 runtime not installed.
        [03/16/2015 17:21:36] Success	Extract dependency file: (...)
        [03/16/2015 17:21:36] Success	Create folder: C:\Users\ULRICH~1\AppData\Local\Temp\_ir_sf_temp_0\vc2010sp1\
        [03/16/2015 17:21:37] Success	Visual C++ 2010 SP1 (32-bit) Module: Installation script started.
        [03/16/2015 17:21:37] Info	Visual C++ 2010 SP1 (32-bit) Module: Entering compatible OS detection.
        [03/16/2015 17:21:44] Info	Visual C++ 2010 SP1 (32-bit) Module: Visual C++ runtime installation file is being launched.
        [03/16/2015 17:23:29] Success	Visual C++ 2010 SP1 (32-bit) Module: Visual C++ 2010 SP1 runtime installed.
        [03/16/2015 17:23:30] Success	Visual C++ 2010 SP1 (32-bit) Module: Installation script finished.
        [03/16/2015 17:23:30] Notice	Start project event: On Startup
        ...
        Ulrich

        Comment


        • #5
          I am using the latest 9.5.0.0

          When I look at the dependency code, it should fail. I added code for 6.2 and higher.

          Comment


          • #6
            If you want to send me your current project in a support ticket, I could have a look and see if I spot the error.

            Ulrich

            Comment


            • #7
              This is what is in the OS version detection script. I added the last section for 8 or higher. This works.

              But when you look at the normal, ending section for Windows 7 only, it should fail.
              >>> SNIPPP
              -- Check to see if this is a valid operating system for VC 2010 SP1 x86
              function isValidOS()
              SetupData.WriteToLogFile("Info\tVisual C++ 2010 SP1 (32-bit) Module: Entering compatible OS detection.\r\n",true);

              local tblOSInfo = System.GetOSVersionInfo();

              -- Failure check for less than Windows XP
              local nMajorVersion = String.ToNumber(tblOSInfo.MajorVersion);
              local nMinorVersion = String.ToNumber(tblOSInfo.MinorVersion);

              -- Helps debug new OS versions
              SetupData.WriteToLogFile("Info\tVisual C++ 2010 SP1 (32-bit) Module: Operating systems reported is "..nMajorVersion.."."..nMinorVersion..".\r\n",true );

              if ((nMajorVersion < 5) or ((tblOSInfo.MajorVersion == "5") and (nMinorVersion < 1))) then
              SetupData.WriteToLogFile("Info\tVisual C++ 2010 SP1 (32-bit) Module: Operating systems less than Windows XP SP3 are not supported.\r\n",true);
              return false;
              end

              -- Check Windows XP SP3 or later and not Starter Edition.
              if ((tblOSInfo.MajorVersion == "5") and (tblOSInfo.MinorVersion == "1")) then
              -- Check service pack.
              if (tblOSInfo.ServicePackMajor < 3) then
              SetupData.WriteToLogFile("Info\tVisual C++ 2010 SP1 (32-bit) Module: Windows XP SP3+ required.\r\n",true);
              return false;
              else
              -- Check to make sure not Starter Edition.
              if (tblOSInfo.StarterEdition) then
              SetupData.WriteToLogFile("Info\tVisual C++ 2010 SP1 (32-bit) Module: Windows XP Starter Edition not supported.\r\n",true);
              return false;
              else
              -- Windows XP SP3+ and not Starter Edition acceptable.
              return true;
              end
              end
              end

              -- Check Windows Server 2003 SP2 or later
              if ((tblOSInfo.MajorVersion == "5") and (tblOSInfo.MinorVersion == "2") and (not tblOSInfo.Server2003R2)) then
              -- Check service pack.
              if (tblOSInfo.ServicePackMajor < 2) then
              SetupData.WriteToLogFile("Info\tVisual C++ 2010 SP1 (32-bit) Module: Windows Server 2003 SP2+ required.\r\n",true);
              return false;
              else
              -- Windows Server 2003 SP2+ acceptable
              return true;
              end
              end

              -- Check Windows Server 2003 R2 or later
              if ((tblOSInfo.MajorVersion == "5") and (tblOSInfo.MinorVersion == "2") and (tblOSInfo.Server2003R2)) then
              -- Windows Server 2003 R2 acceptable.
              return true;
              end

              -- Check Windows Vista / Windows Server 2008 SP2+ or later.
              if ((tblOSInfo.MajorVersion == "6") and (tblOSInfo.MinorVersion == "0")) then
              if (tblOSInfo.ServicePackMajor < 2) then
              SetupData.WriteToLogFile("Info\tVisual C++ 2010 SP1 (32-bit) Module: Windows Vista SP2+ / Windows Server 2008 SP2+ required.\r\n",true);
              return false;
              else
              -- Check to make sure not Starter Edition.
              if (tblOSInfo.StarterEdition) then
              SetupData.WriteToLogFile("Info\tVisual C++ 2010 SP1 (32-bit) Module: Windows Vista Starter Edition not supported.\r\n",true);
              return false;
              else
              -- Windows Vista SP2+ / Windows Server 2008 SP2+ acceptable.
              return true;
              end
              end
              end

              -- Check Windows 7 / (no x86 Windows Server 2008 R2 version) - now at least Windows 7 or higher
              if ((tblOSInfo.MajorVersion == "6") and (tblOSInfo.MinorVersion == "1") and (tblOSInfo.ProductType == 1)) then
              -- Windows 7 acceptable.
              return true;
              end
              >>>> Added by me - barn door for now
              -- Check Windows 8, 8.1, or higher / (no x86 Windows Server 2008 R2 version)
              if ((tblOSInfo.MajorVersion >= "6") and (tblOSInfo.MinorVersion >= "2") and (tblOSInfo.ProductType == 1)) then
              -- Windows 8 or higher acceptable.
              return true;
              end

              return false
              end

              Comment


              • #8
                I am sorry, from the code you posted, I cannot see what actually happens, and what you expect to happen. This is still unclear to me.

                If you are using Setup Factory 9.5, then I expect the above code to return true for Windows 8.1 (6.3.9600), meaning that the dependency would be allowed. (I have not executed this code, just studied what you posted.)

                If you were using an older release of Setup Factory to run this code, which did not have support for Windows 8.1, then the action System.GetOSVersionInfo() could return incorrect info for Windows 8.1, such as 6.2.9200. In such a case, your script would not behave as you expect, because the values used for comparison are different to what you think they are - and you aren't logging them anywhere as a debugging aid.

                Ulrich

                Comment


                • #9
                  Ok. I downloaded the latest Dependency module from your site and I can see that I had an outdated one without 8.1.

                  I added Windows 10 to my edits. All should be well...

                  Thanks!

                  ps - I guess, this should have been in the module section.

                  Comment

                  Working...
                  X