private static void ProcessAssembly(AllAssemblies allAssemblies, FileSystemPath productBinariesDir, MetadataLoader metadataLoader, AssemblyNameInfo assemblyNameInfo, HashSet <ApplicationPackageFile> packageFiles, HashSet <ApplicationPackageReference> packageReferences) { var assembly = metadataLoader.TryLoad(assemblyNameInfo, JetFunc <AssemblyNameInfo> .False, false); if (assembly == null) { return; } var subplatformOfAssembly = allAssemblies.FindSubplatformOfAssembly(assemblyNameInfo, OnError.Ignore); if (subplatformOfAssembly != null) { var subplatformReference = new ApplicationPackageReference(subplatformOfAssembly.Name, subplatformOfAssembly.GetCompanyNameHuman()); packageReferences.Add(subplatformReference); return; } if (assembly.AssemblyName?.Name.Contains("Microsoft.CodeAnalysis") == true) { return; } if (!packageFiles.Add(new ApplicationPackageFile(assembly.Location.MakeRelativeTo(productBinariesDir), assemblyNameInfo))) { return; } foreach (var referencedAssembly in assembly.ReferencedAssembliesNames) { ProcessAssembly(allAssemblies, productBinariesDir, metadataLoader, referencedAssembly, packageFiles, packageReferences); } }