A little more DLL hell today in VS2005 and how it affected my ClickOnce deployment

I have an application with lots of projects in it.The main project, which compiles to the EXE has references to two Janus assemblies and to one of my own assemblies (the dll, not the project). Additionally, I have about 15 assemblies that use these components and point to their dll’s in the same location as the main exe does. Somehow, something got out of whack and in design mode the main exe couldn’t “find” these 3 assemblies. I got that fixed and at the same time had to make some different changes to two of the other assemblies. After doing my update via clickonce, I couldn’t load these two assemblies in the application on client machines. I did a lot of recompiling and redeploying of specific assemblies so that I could continue with my minimal impact ClickOnce update.This means that I don’t republish and redploy the ENTIRE application, but can just move only the assembies I need to the webserver and recreate the manifests there. (I need to write an article on this).

When I tried to access the functions that loaded these assemblies, there was an error complaining about matching assemblies listed in the manifest.

“The located assesmbly’s manifest definition does not match the assembly reference”

When I opened up these projects in VS2005 and looked at the references, those three assemblies had this “<system could not find the reference specified>” in the value where the path should have been.

So, I had to load up every one of these projects and in each one, remove the existing refs to those 3 assembiles and re-add them in.

Then I rebuilt the entire solution and had to run the full publish utility on my development machine and redeploy the entire application to the web server – a two part process. Two-part, because the dynamic assemblies do not get picked up by the publish tool. I have to deploy the results of the publish, then copy that folder into a new folder (next version number), add all of the dynamic dll’s, then rebuild the manifests. (That’s part of the trick I will write about in the aforementioned article.) The whole app is about 11MB. Copying this over VPN with 350K upload speed takes longer than I have patience for, but that’s life.

Nevertheless, after a lot of copying, pastng, manifest buildng adn testing, I was able to get the whole re-jiggered app deployed without requiring the dreaded un-install. The end-users won’t even notice a thing tomorrow morning when they get back to work.



Don’t Forget: www.acehaid.org

  Sign up for my newsletter so you don't miss my conference & Pluralsight course announcements!  

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.