Obtener rutas de ensamblajes utilizados en tipo

Necesito un método que tome un Tipo y devuelva las rutas de todos los ensamblajes que se usaron en el tipo. Yo escribí esto:

public static IEnumerable<string> GetReferencesAssembliesPaths(this Type type)
{   
 yield return type.Assembly.Location;

 foreach (AssemblyName assemblyName in type.Assembly.GetReferencedAssemblies())
 {
  yield return Assembly.Load(assemblyName).Location;
 }
}

Generalmente este método hace el trabajo, pero tiene algunas desventajas:

No encontré cómo obtener los ensamblados / tipos referenciados del tipo en sí, por lo que utilicé type.Assembly.GetReferencedAssemblies () y obtuve las referencias de todo el ensamblado, no solo las relacionadas con el tipo.

type.Assembly.GetReferencedAssemblies () devuelve AssemblyName y no tiene ninguna propiedad location / path / filepath. Para obtener la propiedad de ubicación, primero usé Assembly.Load () y luego usé la propiedad de ubicación. No quiero que los ensamblajes de carga obtengan su ruta, ya que no se usan necesariamente, y porque Assembly.Load () puede fallar con FileNotFoundException o BadImageFormatException.