У меня есть пакет 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.