Не удалось загрузить файл или сборку System.Core 2.0.5.0 при отражении над System.ValueTuple типа TupleExtensions - PullRequest
0 голосов
/ 01 июня 2018

В зависимости от того, как загружается сборка, следующий код может выдать исключение: «Не удалось загрузить файл или сборку System.Core 2.0.5.0» *

foreach (var type in valueTupleAssembly.GetTypes())
{
    var attributes = type.GetCustomAttributes(typeof(string), false);
}

В результате Load или LoadFile возникает исключение

var valueTupleAssembly = Assembly.LoadFile(path);
var valueTupleAssembly = Assembly.Load(File.ReadAllBytes(path));

LoadFrom работает отлично

var valueTupleAssembly = Assembly.LoadFrom(path);

Я понимаю, что System.ValueTuple может быть перенаправляемым, и его зависимость от System.Core должна разрешаться во все, что выполняется.

Я не понимаю (1), почему рефлексия по TupleExtensions разрешает сборку триггеров для System.Core 2.0.5 (другие типы в той же сборке нет) и (2) почему LoadFrom не имеет такой же проблемы,

https://blogs.msdn.microsoft.com/suzcook/2003/09/19/loadfile-vs-loadfrom/ утверждает, что «LoadFrom () проходит через Fusion и может быть перенаправлен на другую сборку по другому пути, но с тем же идентификатором, если он уже загружен в контексте LoadFrom».Поэтому я предполагаю, что (2) Fusion перенаправляет system.core 2.0.5 на доступную версию?

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