Исключение «Не удалось загрузить тип« System.Action »из сборки« mscorlib, Version = 3.7.0.0 » - PullRequest
1 голос
/ 09 ноября 2011

У меня очень странная проблема:

Я использую инфраструктуру NUnit для тестирования в проекте WP7. В настоящее время я пытаюсь использовать Silverlight Unit Test Framework для запуска тестов на устройстве (используя NUnitTestProvider).

Все отлично работает, кроме тестов, которые используют System.Action. В этих тестах я получаю ошибку времени выполнения :

Не удалось загрузить тип 'System.Action' из сборки 'mscorlib, Version = 3.7.0.0

Например, это не работает (не универсальный System.Action)

public void MethodThatAcceptsRawAction(System.Action callback);
...
MethodThatAcceptsRawAction( () => Console.WriteLine("Hi"));

Но это будет работать

public void MethodThatAcceptsOneArgAction(System.Action<object> exCallback);
...
MethodThatAcceptsOneArgAction( (ex) => Console.WriteLine(ex.ToString()));

Я проверил открытые типы в mscorlib.dll , который был в памяти, у него нет System.Action, но есть тип System.Action'1. Похоже, System.Core.dll имеет System.Action.

Microsoft решила разделить варианты System.Action между двумя библиотеками, но средство связывания во время выполнения не знает, где искать тип.

Может, у кого-то была такая же проблема или, по крайней мере, кто-то знает, на что посмотреть?

Заранее спасибо

1 Ответ

1 голос
/ 09 ноября 2011

Хорошо, похоже, решение найдено.

Шаблон проекта WP7 по умолчанию определяет ссылку mscorlib .Это немного странно, я думал, что это всегда указывается компилятором (если используется без ключа / nostdlib).

Я удалил эту ссылку, и теперь все в порядке.

PS Я не отмечаю этот пост как ответ, возможно, кто-то может объяснить это поведение.Это был бы реальный ответ.

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