Hi Mark,
Welcome to the MSDN newsgroup.
As for the "Add reference" function in VS 2005 ide, are you adding the
reference of a certain assembly by directly pointing to its assembly
file(dll) on the disk rather than reference the assembly's project? If so,
the VS ide will check the assembly's metadata for any dependency and search
the assembly's current directory, if any dependency also exists there, it
will also be copied to ASP.NET web application's private bin dir. For
example, suppose we have the following assemblies:
clslib1.dll , clslib2.dll, clslib1dep.dll
clslib2.dll depend on clslib1.dll, and clslib1.dll depend on clslib1dep.dll.
In our ASP.NET web application, we use the "add reference" to reference
that clslib2.dll assembly, if at that time clslib1.dll and clslib1dep.dll
are also in the same directory, they'll also be copied to the bin dir.
Elsewise, if clslib1.dll or clslib1dep.dll is not found in the same
directory with clslib2.dll, it won't be copied.
In addition, for strong-named assemblies, they're not copied to local bin
dir, the ASP.NET web project will add the reference by adding an entry in
the web.config file(in the compilation/assemblies element), like:
<compilation debug="false">
<assemblies>
...........
BTW, all these above are the VS ide specific behavior. At runtime, .net
framework clr will always probing through its assembly locating rules(from
GAC to local probing path).
Regards,
Steven Cheng
Microsoft Online Support
Get Secure!
www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)