DLL Hell Revisited in Pre-Compiled ASP.NET Websites

When working with pre-compiled web apps (sites) in VB.NET, an error like the one shown below can often come up:

Out of sync DLL references sink the boat!!!

The reason for this is an out of sync deployment of the .aspx files and the dlls in the bin folder. The aspx files at run time link with these dlls whose names look something like this:
App_Web_uoepimmx.dll and for every build and publish, the names of these dll files change and get updated in the aspx file like so:

<%@ page language="VB" autoeventwireup="false" masterpagefile="~/Site.master" inherits="default, App_Web_uoepimmx" %>

(#RANT: this is the price you pay if you create a pre-compiled app i.e. while creating a project in VS if you select “New WebSite” rather than “ASP.NET Web Application” :X)

Hence if you just need to deploy one dll or just the bin folder, its safest and best to re-deploy the whole website -configs, aspxs, masters the whole shebang altogether. DONT JUST COPY THE NEW DLL(s) OVER THE OLD ONES since the aspx files would still be referring to the old dlls. I learnt this lesson this morning when one of our users reported that the app was crashing during a live demo. This was the exact problem with it.

For Programmers:
create an “ASP.NET Web Application” rather than “Create a New Website”
For Users:
“Test the application before a demo rather than during it”.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

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