Previous version of Sprinter 11.52 does not properly remove all the GAC when Sprinter is uninstalled.
As a result Sprinter upgrade procedure will fail to install the latest GAC agents which will result in run time errors
To Properly un install Sprinter GAC agent, the installation process of Sprinter 11.52 was changed.
The following step was added to the installation flow :
After installing the prerequisite and before installing Sprinter we run a utility called CleanUtility which is present under Sprinter’s DVD\Sprinter\EN\ folder and also installed in Sprinter’s 11.52 bin directory.
This utility checks if an old versions of Sprinter are installed and in case they are , This tool will do the following steps:
1. Un install Old sprinter version.
2. Un install Sprinter’s gac agents, (the specific GAC agents details are configured in an .xml which is place alongside the .exe file.
The .xml name is CleanFiles.xml.
After this step finish, Sprinter’s 11.52 installation will start.
· Silent installation of Sprinter from the msi directly will be blocked in case old version of Sprinter are installed.
To work around it, the silent installation script should first execute the clean utility using this command line.
· Executing the clean utility post Sprinter 11.52 (in case several gac files failed to un install during the first execution):
In this case, the clean utility should be executed using the following command line.
CleanUtility.exe “[PathToCleanFiles.xml]” run
· On certain machines there might be additional GAC agent beside those registered in cleanFiles.xml which aren’t properly un installed by Sprinter older version.
In this case the user will need to manually add those entries in Cleanfiles.xml.
How to add file :
<CleanFile RelativePath="Policy.9.5.Mercury.QTP.WpfAgent" RegType="gac" RunTime="DotNet2">
RelativePath = the dll name without the .dll extension
RunTime = DontNet2 if the .dll is present under C:\windows\assembly, if it’s under 1 of the GAC folders in C:\windows\Microsoft.NET\assembly it’s DotNet4.
PublicKeyToken and version should be extracted using a reflector.