Well I’m still testing InstallShield installers today and thought I’d add another interesting and cryptic issue to the blog that I saw when an uninstaller removes performance counters (or fails to for that matter). The error described below is not InstallShield’s fault, but instead corruption in the Performance Counter Registry that is encountered during an uninstall. However, since it occurs on uninstall it will certainly bubble up in you related installer logs. As I posted last night, the best way to troubleshoot InstallShield errors is to search the Internet; so I hope this post can help someone out. Below is the complete description and fix that worked for me and a few others:
Uninstall of application
1. %temp% \InstallError.log
2. Event Viewer
1. InstallError.Log details:
Error in Installer: System.ComponentModel.Win32Exception: The configuration registry key is invalid
at System.Diagnostics.PerformanceCounterLib.RegisterFiles(String machineName, String arg0, Boolean unregister) at System.Diagnostics.PerformanceCounterLib.UnregisterCategory(String machineName, String categoryName) at System.Diagnostics.PerformanceCounterCategory.DeleteCategory(String categoryName, String machineName) at System.Diagnostics.PerformanceCounterCategory.Delete(String categoryName) at Service.ConfigureService.RemovePerformanceCounters()
2. Event Viewer item 1 detail:
Unloading the performance counter strings for service appnamehere (app name here) failed. The Error code is the first DWORD in Data section.
Event Viewer item 2 detail:
The performance strings in the Performance registry value is corrupted when process Performance extension counter provider. BaseIndex value from Performance registry is the first DWORD in Data section, LastCounter value is the second DWORD in Data section, and LastHelp value is the third DWORD in Data section.
Corruption of the Windows Performance Registry, possibly due to Windows Server 2003 SP1. See the related thread: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=442741&SiteID=1
Run the following command to rebuild the Performance Registry Library:
C:\WINDOWS\system32> lodctr /R