13 work-hours ago I needed to switch development machines, on which I had been developing a custom .net application for a remote Exchange server.
Reloading the project on the new machine broke references to the CDO for Exchange dll. I went to add it again, but this computer only had CDO for Windows (cdo.dll, or cdosys.dll) - no cdoex.dll. I embarked on a mission to find it...
...An OS upgrade, and what seems like an enternity on MSDN, later all I had turned up was:
CDOEX can only be run on a computer where Exchange has been installed.
Collaboration Data Objects for Exchange 2000 (CDOEX) is installed by Microsoft SharePoint Portal Server 2001 (SPS) server and client, and all versions of Microsoft Office XP
I really didn't want to install any of those things. Especially Exchange - that had more dependencies than my linux box. In the end (thank goodness there was an end), all I had to do was copy the dll file from the original computer and put it in the same place on the new computer:
c:\Program Files\Common Files\Microsoft Shared\CDO
The from the command prompt, navigate to that directory and register the dll with:
Which, thankfully, did the trick. I believe that registering the codex.dll then replaces all the functions of cdosys.dll. So anything relying on codsys.dll may be affected. For instance, after I loaded Outlook it popped up a warning about the changed dll. However, as cdoex is a superset of cdosys everything still works. Your millage may vary. It may destroy your entire computer. I dunno.
Anyway, back to programming. Now all I have to do is to wait for the hair I pulled out of my head to regrow, and I'm back to where I started.