Visual Studio and locked Assemblies

A customer called with with a
very curious problem he was having with Visual Studio and compiling and
deploying a project. Here are the details.

While restructuring a Visual Studio 2003 project, consisting of one
ASP.Net CS project and two dependent assembly's projects containing
Business Logic and Object models ,
an error was counted when recompiling, indicating
that Visual Studio was unable to copy the dependent assembly's temporary
DLL into the output location in the web project (.\bin).

The only way to compile these projects correctly was to shutdown Visual
Studio batch compile and then reopen Visual Studio
2003.

After a lot of analysis it was
discovered that the

AssemblyInfo.cs files in the dependent projects
where accidentally deleted
or corrupted, resulting in
the the DLLS associated with those dependent projects being locked by
Visual Studio.

The only way to compile these projects correctly was to shutdown Visual
Studio batch compile and then reopen Visual Studio
2003.

The problem was resolved by:

- Creating a new ASP.NET project and creating a new Virtual Directory on the IIS server.

Creating new  
class projects for each of the dependent class  
assemblies.
  • Copying the old
    project's C# source code and resource files into the dependent projects,
    excluding the AssemblyInfo.cs file for each project.
  • Copying the old
    project's ASPX etc source file along with their associated C# class and
    resource files.
  • Copying
    the old project's Global.asa source file and its associated C# class
    file over the Visual Studio generated Global.asa
    file.
  • Copying the old
    project's web.config file over the Visual Studio generate web.config
    file.
  • Compiling the new
    project.

Since following this process there has not been any
recurrence of the experience DLL locking problem.

Many thanks to Ross Anderson
from
www.invision.com.au for writting up the issue
and what he did to solve it. Thanks you...