Yesterday I wasted five hours trying to figure out why a C# module couldn’t call a COM interface. The method was obviously properly defined, and called properly, but it always raised a No Such Method exception. I used oleview and ildasm and regasm until my eyes were crossed. I cleaned and rebuilt. I rebooted. Hours passed and I still could not figure out why it didn’t work. A handful of workers were similarly baffled after wasting more time.
Finally we had the bright idea of using Filemon to monitor exactly what files were being used by the process in question. Two minutes later, it was clear that my local download assembly cache (WTF?) had a stale copy of the assembly. I executed “gacutil /cdl” to clear the cache, and the problem was gone.
Thank you, thank you, thank you Sysinternals!