Lookout Assembly Hell

Monday, July 26, 2004
I decided to download and try Lookout, the search tool for Outlook (now a free download from Microsoft). I’m hesitant to give out the link, since, like Elvis, it seems to popup and then disappear, but recent sightings have the download at Lookout Software again.

After installation, Outlook greeted me with the following error:

Sorry!! It looks like another Outlook Plugin has installed an unofficial version of the Outlook libraries which breaks Lookout. Lookout will not be able to load. For more information, see this link: http://www.lookoutsoft.com/forums/topic.asp?topic_id=10

Unfortunately, the aforementioned link doesn’t offer many leads on why the problem occurs, nor how to work around it. I have a few COM add-ins loaded, including SpamBayes, some thingy MapPoint installed, and one I wrote myself in C# to redirect email to a web account. I was guessing my software was causing the problem.

I think the problem occurs because Lookout uses the primary interop assembly for Office XP, while the add-in I wrote uses the PIA for Office 2003. I opened my project in the IDE to see if I could get the two working together when all hell broke loose.

Each time I tried to do anything with the add-in project I wrote, Visual Studio crashed and sent an error report. After the error reporting finished, a dialog would appear to tell me updates are available which might fix my problem, and I was sent to the Office updates page. After installing updates, I could not even open Visual Studio without a crash, so I rebooted.

After rebooting, everything appeared to be back to normal, and Lookout started to work once I disabled my C# add-in. I decided this wasn’t a battle I wanted to fight, and scrubbed out every reference to my component from the registry. My add-in isn’t highly useful, but Lookout is fantastic.


Comments
Mike Belshe Monday, July 26, 2004
Ha - welcome to the world of managed plugins! I have so many horror stories with the problem you are now describing. You'd think that .NET, being the "savior from DLL hell" would have worked better for this case. Sadly it does not.
<br>
<br>Early versions of Lookout suffered from all sorts of compatibility problems. At some point, I should write them all down.
<br>
<br>What is happening to you, I'm fairly certain (although I haven't seen your plugin so I could be wrong!) is exactly what you point out - Outlook Interop Assembly conflicts.
<br>
<br>If you look at the whole matrix of combinations of Outlook Interop Assembly combinations, the only one that really works (in my opinion, and I believe others at Microsoft that know .NET better than I do disagree) is to use the Outlook 2002 XP PIA. If you use this, you'll be golden. Create your own, and you might work, depending on what other plugins are loaded, and whether or not they are in the GAC. I suspect what is happening to you is that because Lookout installed the XP PIA into the GAC (we didn't want to do that, we ended up being FORCED to), when Lookout is loaded, your plugin gets the XP PIA version instead of the version you used (probably one you created dynamically).
<br>
<br>Anyway, I could ramble on for a long time. But, in short, if you use the XP PIA, your problems will likely vanish....
<br>
<br>Good luck!
<br>
<br>(P.S. thanks for the kind words about lookout!)
Scott Allen Monday, July 26, 2004
I'll have to give that a try when I have a few hours to kill. :)
gravatar Dunno Wednesday, January 20, 2010
Nothing works out in my windows vista home basic computer.
Comments are now closed.
by K. Scott Allen K.Scott Allen
My Pluralsight Courses
The Podcast!