Error during EMSS server upgrade: The type "Telerik.Web.UI, PublicKeyToken=<string of characters>" has more than one entry in the GAC

Version 1

    Background

    E.M.S.S 7.x; E.M.S.S 8.x

     

    Symptom

    During the EMSS upgrade, at some time, you may encounter failure during the process of GAC (Global Assembly Components), and after the installation manager attempted to restore the files, the EMSS web console fails to load. Rendering the EMSS broken. As shown in the screenshots below.

     

    At this time, you may go to [<drive letter>:\Program Files (x86)\HEAT Software\EMSS\Install manager\Logs] and open up the “Installmanager_rolling.log” using notepad or any wordprocessing software.

    Try searching for keywords such as "Failed"/ "Error" or even "Exception".

     

    In this particular KB, we will look at a particular error message:

     

    ======Installmanager_Rolling.log=======

    4/19/2018 3:44:06 PM - Information: <gac action="replace" filename="D:\Program Files (x86)\HEAT Software\EMSS\Install Manager\temp\792ba685-9892-42a8-ac7c-eae8aa0b861d\GAC\Telerik.Web.UI.dll" typename="Telerik.Web.UI, PublicKeyToken=6227a34ee7e13c5a" lm_ln="98" />

    4/19/2018 3:44:06 PM - Critical: An exception has been thrown

    ----> System.InvalidOperationException

    Message

         The type "Telerik.Web.UI, PublicKeyToken=6227a34ee7e13c5a" has more than one entry in the GAC

    Stack

         at Lumension.XScriptTool.ScriptCommands.GacCommand.e(String typeName)

         at Lumension.XScriptTool.ScriptCommands.GacCommand.g()

         at Lumension.XScriptTool.ScriptCommands.GacCommand.Start()

         at Lumension.XScriptTool.ScriptCommandBase.StartCommand(IXScriptCommand command)

         at Lumension.XScriptTool.ScriptCommandBase.Start()

         at Lumension.XScriptTool.ScriptCommands.GroupCommand.Start()

         at Lumension.XScriptTool.ScriptCommandBase.StartCommand(IXScriptCommand command)

         at Lumension.XScriptTool.ScriptCommandBase.Start()

         at Lumension.XScriptTool.ScriptEngine.ExecuteScript(XScriptToolConfig config)

         at Lumension.InstallManager.Model.Providers.ScriptProvider.ExecuteModuleScript(String[] configSections, ModuleManifest moduleManifest, InstallParameters parameters)

         at Lumension.InstallManager.Model.InstallationManager.a(InstallParameters A_0, InstallOptions A_1, Boolean A_2)

     

    4/19/2018 3:44:06 PM - Information: <event operation="BackupRestore" currentindex="3" total="29" />

    4/19/2018 3:44:06 PM - Information: <event operation="ModuleBackupRestore" currentindex="3" total="29" id="GAC" displayname="GAC" version="8.5.0.29" title="Global Assembly Cache" />

    =======End===========================

     

    In the error above, which could be seen in the “Installmanager_rolling.log”, it states " The type "Telerik.Web.UI, PublicKeyToken=6227a34ee7e13c5a" has more than one entry in the GAC". This is due to multiple versions of GAC (Global Assembly Components) that exist in these two folders:

     

    i) C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Telerik.Web.UI

    ii) C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Telerik.Web.UI.Skins


    Resolution:

    1. At this point, it would be good to restore the EMSS server to the last known good backup if it is a virtual machine. (If this is not a VM, please log a ticket with support)

    2. On the actual EMSS server, go to [C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Telerik.Web.UI]

    3. Under normal circumstances, you should have only ONE instance of the global assembly component in this folder. However, as the error suggested, there are more than one instance as shown in the screenshot. One 2014 and one 2015 version:

     

    4. Next, also check this folder on the actual EMSS server, [C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Telerik.Web.UI.Skins].

    5. SImilar to the "Telerik.Web.UI", under normal circumstances, there should be only ONE instance of global assembly component in this folder. However, as the error suggested, there are more than one instance as shown in the screenshot. One 2014 and one 2015 version:

     

    6. Move (Cut) the older version of the Global assembly component into any temp folder, leaving with one latest instance of the subfolder only, for both folders. Ensuring you have the latest version of GAC in this folder only:

    [C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Telerik.Web.UI]

    [C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Telerik.Web.UI.Skins]

     

    7. Restart the "EDS Installer service"

     

    8. Invoke the "Installation manager" and start the upgrade again.