Here is some clarification (the class and dll names are fictious):
Project DvModule contains class:
DvModule.cs
The class makes:
using MS.FORM.Model.RequestParams;
So in the c# project DvModule, there is a reference to
MS.FORM.dll
This build. In my other application, if I copie the MS.FORM.dll directly and uses it. It works.
However if I build the C# project, and examine the \bin directlry, I can see that the linker detected a class in MS.FORM.dll making:
using MS.MC.Model.RequestParams;
and therefore output in the \bin directory the following dll. Although its not in the reference of my projet.
MS.MClinic.MC.dll
There is also a file called "ResolveReferenceAssembly.cache", which seems to indicate that a reference resolution process is responsible for this not-reference DLL to be copied.
However, if I do NOT copy this second DLL in my other application, everthing works, perhaps because no execution path every crosses a location where the extra DLL would be needed.
So there is a dependency for this DLL, but I do not really uses it in my application. So is there a way to find out which dll I REALLY need?