Leveraging library metadata to get project referenced assemblies
If you are going to gather metadata across a running process, chances are that you’re only interested in the assemblies that are part of your solution and not all the .NET framework libraries or third-party libraries. There is a performance impact of looking through all assemblies for metadata, so filtering down might be a good idea.
In .NET projects, we can add package references, typically from sources such as NuGet or your own package sources, but we can also add local project references. These are references to other .csproj files representing something that we want to package in its own assembly. Inside a .csproj file, you can identify the different references by their XML tags – <PackageReference/> or <ProjectReference/>. Inside Visual Studio or Rider, you will typically see these tags in the explorer view as well.
The C# compiler produces additional metadata to distinguish the different...