C# &引用;无法加载类型';系统行动';来自组件';mscorlib,版本=3.7.0.0“;例外

C# &引用;无法加载类型';系统行动';来自组件';mscorlib,版本=3.7.0.0“;例外,c#,windows-phone-7,nunit,C#,Windows Phone 7,Nunit,我遇到了一个非常奇怪的问题: 我在WP7项目中使用NUnit框架进行测试。目前,我正在尝试使用Silverlight单元测试框架在设备上运行测试(使用NunitestProvider) 除了使用System.Action的测试外,其他一切都正常工作。在这些测试中,我得到一个运行时错误: 无法从程序集“mscorlib”加载类型“System.Action”, 版本=3.7.0.0 例如,这不起作用(非泛型System.Action) 但这会奏效的 public void MethodThatAc

我遇到了一个非常奇怪的问题:

我在WP7项目中使用NUnit框架进行测试。目前,我正在尝试使用Silverlight单元测试框架在设备上运行测试(使用
NunitestProvider

除了使用
System.Action
的测试外,其他一切都正常工作。在这些测试中,我得到一个运行时错误:

无法从程序集“mscorlib”加载类型“System.Action”, 版本=3.7.0.0

例如,这不起作用(非泛型System.Action)

但这会奏效的

public void MethodThatAcceptsOneArgAction(System.Action<object> exCallback);
...
MethodThatAcceptsOneArgAction( (ex) => Console.WriteLine(ex.ToString()));
接受seargaAction(System.Action exCallback)的公共无效方法;
...
接受seargaAction((ex)=>Console.WriteLine(ex.ToString())的方法;
我在mscorlib.dll中检查了内存中的公共类型,它没有
System.Action
,但有
System.Action'1
类型。看起来像是System.Core.dll具有
System.Action

Microsoft决定在两个库之间拆分System.Action变体,但runtime binder不知道在何处查找该类型

也许有人也有同样的问题,或者至少知道一些东西可以看


提前感谢

好的,看来解决方案找到了

默认WP7项目模板定义mscorlib引用。这有点奇怪,我认为它总是由编译器引用的(如果不使用/nostlib键)

我删除了这个参考,现在一切都好了


另外,我不把这篇文章作为答案,也许有人可以解释这种行为。这将是一个真正的答案。

好的,看起来解决方案已经找到了

默认WP7项目模板定义mscorlib引用。这有点奇怪,我认为它总是由编译器引用的(如果不使用/nostlib键)

我删除了这个参考,现在一切都好了


另外,我不把这篇文章作为答案,也许有人可以解释这种行为。这将是一个真实的答案。

这可能与以下问题有关吗?不,我有一个运行时错误,链接是关于编译器时间的。但是谢谢你的链接。这很有趣!是的,的确如此!那么,让我们等待其他来源的启示。这可能与吗?不,我有一个运行时错误,链接是关于编译器时间的。但是谢谢你的链接。这很有趣!是的,的确如此!那么,让我们等待其他来源的启示。
public void MethodThatAcceptsOneArgAction(System.Action<object> exCallback);
...
MethodThatAcceptsOneArgAction( (ex) => Console.WriteLine(ex.ToString()));