For some time now, I've been getting an error when adding SandDock to a Visual Studio designer:
FileNotFoundException: Unable to load SandDock 2.4.3.0 or one of it's dependencies...
This was surprising to me because I had uninstalled SandDock 2.4.3.0, then installed SandDock 3.0. There was no trace of SandDock 2.4 on my machine; where the heck was Visual Studio pulling this from?!
I fired up the .NET SDK utility Fusion Log Viewer (FUSLOGVW.exe) and watched the assemblies that got loaded when I tried to add SandDock to a form in Visual Studio.
I noticed 2 lines in FUSLOGVW that indicated a problem:
devenv: SandDock.Design.dll 1.0.0.1
devenv: SandDock.dll 2.4.3.0
It appears that SandDock.Design.dll is trying to load SandDock 2.4 -- a version which didn't exist on my machine!
I retraced my steps: I uninstalled all versions of SandDock. Then I installed version 2.4. Then I uninstalled that. I noted that after uninstallation, SandDock.Design.dll was still in the global assembly cache (GAC)! This is a bug in the uninstall program for SandDock 2.4.
Since the uninstaller wasn't doing it's job, I manually uninstalled SandDock.Design.dll from the GAC.
After manually removing the design dll from the GAC, I then installed SandDock 3. That worked!
In summary, the SandDock 2.4 uninstaller is flawed; it doesn't remove SandDock.Design.dll from the GAC. Because of this, installing new versions of SandDock do not overwrite the SandDock.Design.dll, possibly because the assembly version is still the same (even though the dll has apparently changed). The end result is exceptions being thrown when you tried to add SandDock to the designer. To fix this, simply uninstall all SandDock versions, then manually remove SandDock.Design.dll from the GAC, then install the latest version of SandDock.
I hope this helps other folks.
Shalom!
-Judah