Как должна работать эта загрузка сборки? - PullRequest
0 голосов
/ 23 мая 2019

У меня есть пакет NuGet Microsoft.CodeAnalysis.Scripting.Common версия 2.6.1, который я использую. Сборка в этом пакете нацелена на .NET Standard 1.3.

У меня есть консольное приложение .NET Framework net461, которое принудительно загружает все ссылочные сборки, подобные этой.

HashSet<string> visited = new HashSet<string>();

void WalkReferencedAssemblies(Assembly assembly)
{
    if (assembly.IsDynamic)
    {
        return;
    }
    foreach (var r in assembly.GetReferencedAssemblies())
    {
        if (visited.Add(r.FullName))
        {
            WalkReferencedAssemblies(Assembly.Load(r));
        }
    }
}

В конце концов я нажал эту ошибку.

Не удалось загрузить файл или сборку 'System.Runtime.Loader, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' или одна из ее зависимостей. Система не может найти указанный файл.

Я не могу понять, но надеюсь понять, как это должно работать. Это не так, что это происходит, учитывая, что это именно то, что говорит метаданные сборки, НО я также узнал, что System.Runtime.Loader не используется в CLR .NET Framework для настольных ПК. Как правильно решить эту проблему, и как я узнаю, что я должен иметь дело с этими ссылками каким-то странным и недокументированным способом? Я зашел так далеко, в основном читая о различных проблемах GitHub, распространяющихся по всему репозиторию corefx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...