Announcement

Collapse
No announcement yet.

Patch Multiple Targets where one might not exist

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

  • Patch Multiple Targets where one might not exist

    Hi,

    our software is quite complex and we want to provide patches for faster updating. ur setup installs 32 and 64 bit components of our software on compatible systems or 32 bit parts only on 32 bit systems.

    When we patch the 32 bit software we also have to patch the 64 bit parts. I managed to do so by adding all parts to a version and not only check %AppData% but also a %AppData64%. So when both parts of the software are installed, the patch works fine.

    Problem is, if only one part 32 or 64 bit is installed, the patch does not "find the software" and stops.

    Is there a way to patch only the found parts or do I need to provide two patches?

    I can find out what parts are installed on the system, maybe I can disable the 32 or 64 bit parts inside the patch?

    Thank you for your answer.

  • #2
    Nevermind. I managed to fix it by myself by changing the "Decide which "Before Patching" screen to show." to

    -- Decide which "Before Patching" screen to show.
    if g_InstalledVersion then
    if g_InstalledVersion == VisualPatch.GetTargetVersion() then
    -- The target version was found
    Screen.SetStartScreen("Software is Current");
    else
    -- An out-of-date version was found
    Screen.SetStartScreen("Ready to Patch");
    end
    elseif g_InstalledVersion64 then
    if g_InstalledVersion64 == VisualPatch.GetTargetVersion() then
    -- The target version was found in the 64 bit part
    Screen.SetStartScreen("Software is Current");
    else
    -- An out-of-date version was found in the 64 bit part
    Screen.SetStartScreen("Ready to Patch");
    end
    else
    -- No version was found in 32 or 64 bit part
    Screen.SetStartScreen("Cannot Locate Software");
    end

    Maybe it helps someone.

    Comment


    • #3
      Code:
      -- Decide which "Before Patching" screen to show.
      if g_InstalledVersion then
      	if g_InstalledVersion == VisualPatch.GetTargetVersion() then
      		-- The target version was found
      		Screen.SetStartScreen("Software is Current");
      	else
      		-- An out-of-date version was found
      		Screen.SetStartScreen("Ready to Patch");
      	end
      elseif g_InstalledVersion64 then
      	if g_InstalledVersion64 == VisualPatch.GetTargetVersion() then
      		-- The target version was found in the 64 bit part
      		Screen.SetStartScreen("Software is Current");
      	else
      		-- An out-of-date version was found in the 64 bit part
      		Screen.SetStartScreen("Ready to Patch");
      	end
      else
      	-- No version was found in 32 or 64 bit part
      	Screen.SetStartScreen("Cannot Locate Software");
      end

      Comment

      Working...
      X