When you compile a project that references other projects, Visual Studio by default saves the files in bin/Debug
when you are on a Debug mode. So you can see which are the libraries that contain other files marked explicitly as a reference from your project. Now, having a library there doesn't mean that your code on runtime uses it. This gives you a starting point to discover at least which .cs files are going to be used when you run that project because all of them are contained on the binaries that are copied on that folder.
When you run your code the principal thread loads all the referenced assemblies to execute its logic. Referenced assemblies are those that have an explicit reference on the code of the project you are running.
Let's say that you load from a web project assemblies that you are going to use via reflection because you discover some plugins that you created on a plugin library. Even if you have a reference on your web project to those libraries it doesn't mean that they are going to be loaded on runtime using this code.
var assemblies = Assembly.GetEntryAssembly().GetReferencedAssemblies().Select(Assembly.Load);
If in your main project you don't use explicitly a reference of any class from your plugins libraries, those plugins libraries are not going to be part of the referenced assemblies. My point here is that your original set of assemblies from your bin/Debug
are now reduced to the assemblies that your code really uses at runtime.
With that, you can inspect those assemblies to see which are the classes you are using.
Hope this helps