While putting this site together I used Visual Studio 2005 to publish a web site for the first time using the "Publish Web Site" function. Over all it went smoothly . But then I went to make a small update to the site. For the sake of speed, I published to a local folder, and I wanted to upload only the files needed for the change. Problem number one was that the compiled assemblies had random filenames for example "App_Web_6pzl0zez.dll". So there was no easy way to know which assembly contained the change. Ok, so I'll just upload all the dll's, no big deal. I deleted the old dll's and uploaded the new ones from the local folder where I published the site.
Problem number two emerges... Everytime you use "Publish Web Site", the names of the assemblies change. It seems that the aspx pages are pointing to the assemblies by name, because the site gave an error saying it could not find an assembly. Once I uploaded all the updated aspx files the site worked again. So there seems to be no easy way to make these types of small updates to a web site using the "Publish Web Site" function without resorting to single page assemblies or full runtime compilation.
Of course I could fire up the command line compiler, but what fun is that :) So I decided it was time I installed the Web Site Deployment Projects add-on I downloaded last week. It was so easy to use, there was no need to look at any documentation. The option to add a new web deployment project is conveniently added to the Build menu. Once added it appears in Solution explorer where you just right click it to access all the options. What could be easier!? Web Site Deployment Projects allows you to give your assemblies specific names. So this solves my problem. Now I can just upload the assembly that contains the changed code and I can keep the assembly name the same on each build. A big thanks to the developers of this easy to use and very handy add-on.