[INFO] Зависимости сборок
От: baranovda Российская Империя  
Дата: 06.06.08 21:34
Оценка:
Мне потребовалось упорядочить отсортировать некоторую коллекцию объектов, классы которых определены в разных, динамически загружаемых при помощи метода Assembly.LoadFrom() сборках, по принципу зависимости сборок друг от друга. Алгоритм сортировки выглядит примерно так:

int CompareTo(Object a, Object b)
{
  Assembly asmA = a.GetType().Assembly;
  Assembly asmB = b.GetType().Assembly;

  AssemblyName[] asmARefNames = asmA.GetReferencedAssemblies();
  foreach (asmARefName in asmARefNames)
  {
    if (asmARefName.Equals(asmBRefName))
      return +1;
    ...
  }
  ...
  return 0; // -1
}


Выяснилась следующая вещь: если проект A в солюшене ссылается на проект B, но не создает ни одного экземпляра класса из проекта B или использует только константы из проекта B, то сборка B не попадает в список сборок, на которые ссылается сборка А, в момент вызова метода asmA.GetReferencedAssemblies().
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.