GetReferencedAssemblies не возвращает все сборки
У меня есть следующий код внутри формы, и я пытаюсь найти способ загрузить сборку проекта, на которую ссылается форма под названием DataObjects
. Используя следующий код, я могу получить только шесть сборок. Рассматривая ссылки на проект, в котором находится форма, есть тринадцать ссылок на сборку. Что здесь не так?
private void ListReferencedAssemblies()
{
var assemblies = Assembly.GetExecutingAssembly().GetReferencedAssemblies();
foreach (var assembly in assemblies)
{
referencesListBox.Items.Add(assembly.Name);
}
}
Ответы
Ответ 1
Не могли бы вы проверить манифест сборки, чтобы увидеть, что здесь указано?
Компилятор С# стремится удалить ссылочные сборки из манифеста, если они не используются. Поэтому, если вы не ссылаетесь на какой-либо тип из сборки B или ссылаетесь только на константы из сборки B (которые встроены в compier), то вы не будете иметь этих ссылок.
Ответ 2
Компилятор не будет включать ссылки на сборки в сборке, которые фактически не используются в коде.
В сборке будут указаны только сборки, которые используются из кода.