Indirect references


I have a dll and an exe which both reference a dll ( call it a.dll). Its copy local in both projects. The dll references another dll (call that b.dll).

b.dll has another reference which is also copy local (call that c.dll).

In the console app c.dll is copied to the bin directory but in the dll project its not.


This is a screen shot of the dll reference in the project where it’s not copied. “copy local” is checked in the dropdown menu but (copy local) doesn’t appear in the solution explorer. System.Net.Http is c.dll

Is it checked and disabled because Fire thinks it should be copy local

a.dll and b.dll are projects in my solution but Ive only referenced a.dll in the dll and exe, is it ok to do that or should I add both as references ?

Why Im wondering is because a project reference that is referenced indirectly only shows its cache location where a direct project reference shows the elements project location.

Sailing.Core is b.dll


I have another question. Why do project references show mdb files as references ? I dont think that is especially useful.

This is an example of what Im doing, although in this case is being copied to the bin directory for both the console app and class library. (575.8 KB)

Also would it be possible for project references to be a bit more organized when showing where references are coming from ?

For example if you look at the SharedClasslibrary reference in Classlibrary, most of the references ie System.IO and System.Net.Http are actually references of IndirectClassLibrary. Could those be under IndirectoryClassLibrary ?


Are these project references? Indirect references can only work for project references (how else would we know that b.dll needs a.dll, of your project just references b.dll by file?)

I worked out what my issue was. I had System.Net.Http coming from mono and a nuget (551.1 KB)

If you look at ConsoleApplication. It has System.Net.Http out of .NetFramework and the nuget.

Would it be possible to show an error instead or that its using one of the references ? Currently the only way I found out was when I noticed the assembly wasnt being copied to the bin folder.

Also did you see my other request to remove pdb, mdb and xml from the references ?


Nested under the .dll references, Fire will show all related files that will also be referened/copied along with the reference. that includes .pdb and .mdb in present.

I don’t believe I have that information still, at that level.

To be honest, this thread has so many things going on that I could not possibly say what’s what. Glad you got the problem sorted and it’s working for you now.