Подтвердить что ты не робот

GetReferencedAssemblies не возвращает все сборки

У меня есть следующий код внутри формы, и я пытаюсь найти способ загрузить сборку проекта, на которую ссылается форма под названием DataObjects. Используя следующий код, я могу получить только шесть сборок. Рассматривая ссылки на проект, в котором находится форма, есть тринадцать ссылок на сборку. Что здесь не так?

private void ListReferencedAssemblies()
{
    var assemblies = Assembly.GetExecutingAssembly().GetReferencedAssemblies();
    foreach (var assembly in assemblies)
    {
        referencesListBox.Items.Add(assembly.Name);
    }
} 
4b9b3361

Ответ 1

Не могли бы вы проверить манифест сборки, чтобы увидеть, что здесь указано?

Компилятор С# стремится удалить ссылочные сборки из манифеста, если они не используются. Поэтому, если вы не ссылаетесь на какой-либо тип из сборки B или ссылаетесь только на константы из сборки B (которые встроены в compier), то вы не будете иметь этих ссылок.

Ответ 2

Компилятор не будет включать ссылки на сборки в сборке, которые фактически не используются в коде.

В сборке будут указаны только сборки, которые используются из кода.