I encountered the same frustrating problem and eventually found a solution. Cutting to the chase, I'll give the solution first, then the explanation:
Open Task Manager. End Process for any copy of ArcMap.exe.
Open a Windows Explorer. Navigate to C:\Users\\Local Settings\ESRI\Desktop10..
If you don't see AssemblyCache, Organize > Folder and search options > View > uncheck "Hide protected operating system files (recommended)"
In the directories in AssemblyCache, look for the one containing your .dll.
Delete the .dll.
Rebuild the project and debug. Once your add in activates you should see the cache contents get refreshed.
If desired, re-hide the protected OS files.
The problem for me was that there was an old instance of my DLL in the C:\Users\\Local Settings\ESRI\DesktopX.X\AssemblyCache\ folder, and I also couldn't see \AssemblyCache because I didn't realize it was a hidden OS file. There was also a zombie instance of ArcMap running, and when I tried to delete the DLL initially it was locked. My suspicion is that what caused the problem in the first place is that I didn't quite fully shut down a debugging session of ArcMap before recompiling the code and starting another. The old DLL in the cache couldn't get overwritten because the old ArcMap instance still had it locked, and once it got out of synch with the new code the cached version no longer got updated. (I can see by file dates that the .config, .pdb, and .xml are being updated but not the .dll.)