I ran into a difficult situation at a client where we were unable to edit (add new features) to GP2010, unable to uninstall or repair GP2010 and unable to launch GP2010 because of dictionary version mismatches. This scenario involved issues finding the references in the registry to troubleshoot installations that I hope may help someone else since that is where I ended up in my quest to resolve this issue.
The issues were various, but the short story is it started with being unable to launch Dynamics GP Utilities ("Problem ascertaining version" error).
The product mismatch was with the Canpay.dic file (Canadian Payroll). After installing SP1, the dictionary still said it was code 11.0.1247 (RTM). Re-installing SP1 made no difference. All other dictionary files were at proper SP1 version #. Odd.
Next, I tried to remove Canadian Payroll from the dynamics.set file and then re-run the setup to "add" that product back. The problem: the Change program feature under Add/Remove programs was blank, where usually it's a product list for additional products.
Next, I decided to uninstall and reinstall the GP client entirely. Should be simple, right? Nope! Uninstall gives me an "Object reference not set to an instance of an object" error.
So, now I'm getting annoyed and frustrated, nothing seems to work, and I'm going in circles! Regardless, it's now time to search for more solutions! (I'm not sure that I outwardly appeared that positive in the middle of this, but I do enjoy a challenge … hehe).
Uninstalling GP2010
First, I found Mariano Gomez' post How to Uninstall GP10 for instances where add/remove programs do not work. Even though I was using GP2010, not GP10, the references were the same. This gave me a lot of the information I have here and helped a ton.
A second completely non-Dynamics-related article (link removed / now dead) helped me find the other references in the registry including a tip in a user’s comment about 32-bit apps on a 64-bit machine.
In my specific issue, I was getting errors trying to either Repair or Remove using the add/remove programs (or the appwiz.cpl shortcut). The error was "Object reference not set to an instance of an object". I was unable ultimately to even run through Mariano's steps as I received the same error when uninstalling the msi in the Installer folder(s).
To the registry!
I'm not a big fan of hacking into a registry because it's risky, there are lots of ways for this to go wrong. In this case, I was also working remotely so I needed to be ultra careful, backing up anything and everything, and documenting every step so I could go back if I needed to. Remember: always export the keys before deleting anything…
My environment
The server is Windows Server 2008 R2 Standard, 64bit. SQL version SQL2005. GP2010 SP1.
What worked for me
Take this for what it's worth, I tried a lot of things (removing entries in the registry) and to be perfectly honest, once I got to the “search” stage on the registry, I didn't know exactly which specific registry key was "the" one that freed me from my little black hole as I kept the search going to find as much as I could before trying to install again.
Also, in all of this, my DATA was fine - there were no issues from any other workstation, the data was fine, all products were at their proper upgraded version and the system was not down. It was the only client installed on the server for me that was not working.
- Using Mariano Gomez's post steps, I first re-tried to uninstall by using Start - Run - appwiz.cpl and received the same "Object Reference not set to an instance of an object" error.
- I looked at the Installer (application) folder. During my troubleshooting steps, I had installed GP2010 twice and therefore had two instances to deal with removing. Right-clicking on the installer (using the subject tip Mariano had) returned the same error message as in #1.
- I started looking in the registry to manually remove the references and application directories etc. After thinking I got all of the references, I used CCleaner (a free program available online) to clean the registry items that I found left behind. Rebooted. At this point, the install (fresh install) failed with another error (System.NullReferenceException: Object Reference is not set to an instance of an object at Microsoft.Dynamics.GP.Deployment.WindowsInstaller.DynamicsGP.Installation…. long text string of similar entries.)
- Back to the registry, I searched for keywords and removed other references not so obviously placed.
- After this, I was finally able to re-install without issue and without any references to a prior install of GP2010. This time around I used the full installation package of GP2010 with SP1 included.
Registry references
The following were the areas I looked at in the registry (all tips from the two posts above):
- HKLM > Software > Microsoft > BusinessSolutions
- This contained references to how many instances were installed, what they were called, where they were located, and which products were installed on each instance. This one unexpectedly helped me: I ran into a problem where one product kept reappearing in the dynamics.set file after installing a service pack (in this case, Electronic Reconcile). Initially that product was installed, then removed from the dynamics.set file. However, the registry has it as an installed product on that instance so each time the service pack was run, it was updated and reinserted in the dynamics.set file.
- HKLM > Software > Microsoft > Windows > CurrentVersion > Uninstall
- In my environment, this contained 64-bit apps only, and GP2010 was not in there. Dexterity Components were present there though.
- HKLM > Software > WOW6432Node > Microsoft > Windows > CurrentVersion > Uninstall
- This contained 32-bit apps including GP2010. This was the magic registry for me. I would not have guessed to look here for anything initially.
- At this point I had stopped, thinking I had captured all the references, backed them up and removed them. When I realized I was missing references, I searched the following terms:
- Dynamics
- Business Solutions
- Great Plains.
- I only searched HKLM downwards. When the search started to get bogged down into "UserData S-1-5-18" Components, I skipped down to the last subkey of this section and then continued the search, skipping that area.
Application Folders & References
Here was where I found references in Windows Explorer to GP2010, dexterity etc. or install files and removed what was no longer necessary.
- Installer folders (Start – Run – Installer)
- Common Program Files (Start – Run - %commonprogramfiles%)
- Microsoft Shared (same folder as above, subfolder called Microsoft Shared)
- Application directory (Program Files – Microsoft Dynamics – GP)
- Downloaded installations folder (Windows – Downloaded Installations)
While I was in the middle of my little black hole, I was searching for a lot of the error messages I was coming across but not having much luck. Hopefully, this will help someone narrow down their problem and get them out of their black hole!