- csharp/
- C# NUnit错误:";FrameworkName的组件不能少于两个或多于三个;
C# NUnit错误:";FrameworkName的组件不能少于两个或多于三个;
C# NUnit错误:";FrameworkName的组件不能少于两个或多于三个;,c#,.net,nunit,resharper,C#,.net,Nunit,Resharper,我正在使用:
Visual Studio 2017 v15.5.4
NUnit 3.9.0
NUnit测试适配器3.9.0
Resharper 2017.3
.NET4.7项目
我在尝试调试NUnit测试时遇到随机异常:
首先是:
托管调试助手“BindingFailure”:“具有
显示名称“Microsoft.VisualStudio.QualityTools.VideoRecorderEngine”
无法在ID为的AppDomain的“加载”绑定上下文中加载
1.失败的原因是:Syst
我正在使用:
- Visual Studio 2017 v15.5.4
- NUnit 3.9.0
- NUnit测试适配器3.9.0
- Resharper 2017.3
- .NET4.7项目
我在尝试调试NUnit测试时遇到随机异常:
首先是:
托管调试助手“BindingFailure”:“具有
显示名称“Microsoft.VisualStudio.QualityTools.VideoRecorderEngine”
无法在ID为的AppDomain的“加载”绑定上下文中加载
1.失败的原因是:System.BadImageFormatException:无法加载文件或程序集
“Microsoft.VisualStudio.QualityTools.VideoRecorderEngine”或
它的依赖性。该模块应包含一个程序集
明显的。”
其次是:
System.BadImageFormatException:'无法加载文件或程序集
“Microsoft.VisualStudio.QualityTools.VideoRecorderEngine”或
它的依赖性。该模块应包含一个程序集
明显的。”
以及:
托管调试助手“BindingFailure”:“具有
无法在“加载”中加载显示名称“VSTestVideoRecorder”
ID为1的AppDomain的绑定上下文。失败的原因
was:System.BadImageFormatException:无法加载文件或程序集
“VSTestVideoRecorder”或其依赖项之一。进行了一次尝试
加载格式不正确的程序。'
在一些相关的例外情况出现后:
托管调试助手“LoadFromContext”:“名为
“nunit.engine.api”已从加载
'file:///C:/Users/[用户名]/AppData/Local/Temp/VisualStudioTestExplorerExtensions/NUnit3TestAdapter.3.9.0/build/net35/nunit.engine.api.DLL'
使用LoadFrom上下文。使用此上下文可能会导致
序列化、强制转换和依赖项的意外行为
决议在几乎所有情况下,建议从
必须避免上下文。这可以通过在中安装程序集来完成
全局程序集缓存或在ApplicationBase目录中,并使用
程序集。显式加载程序集时加载。“
及
托管调试助手“LoadFromContext”:“名为
“Mono.Cecil”是从
'file:///C:/Users/[用户名]/AppData/Local/Temp/VisualStudioTestExplorerExtensions/NUnit3TestAdapter.3.9.0/build/net35/Mono.Cecil.DLL'
使用LoadFrom上下文。使用此上下文可能会导致
序列化、强制转换和依赖项的意外行为
决议在几乎所有情况下,建议从
必须避免上下文。这可以通过在中安装程序集来完成
全局程序集缓存或在ApplicationBase目录中,并使用
程序集。显式加载程序集时加载。“
最后:
System.ArgumentException:'FrameworkName不能少于两个
组件或三个以上组件。参数名称:
框架名称'
之后,我可以调试我的测试,但有新的随机异常
在调试视图中传递集合时:
System.ArgumentNullException:'值不能为null。参数名称:
收藏'
使用Stracktrace:
在System.ThrowWhelper.ThrowArgumentNullException(例外参数
(论据)在
System.Collections.Generic.Mscorlib\u CollectionDebugView1..ctor(ICollection
1
收藏)
转到测试->测试设置->默认处理器体系结构。确保这与您当前的系统架构相匹配,即,如果您的机器为64位,则将其设置为X64,反之亦然:
好吧,这是一个bug。据说这将在VS15.8预览版3中修复。我在版本15.9.11中仍然存在此问题。我的工作是:
在异常设置窗口中引发ArgumentException时显式启用中断
调试单元测试,并等待调试器因框架名称而中断(因为它是ArgumentException)
使用调试器中的异常抛出窗口,并选中设置“从系统.dll抛出时除外”,因此,我们告诉调试器
在System.dll中抛出时忽略ArgumentException
就我而言,托管调试助手
可以忽略。所以真正的问题只是我发布的最后3个例外,我认为这3个例外不适合我。System.ArgumentException HResult=0x80070057 Message=FrameworkName的组件不能少于两个或多于三个。参数名称:frameworkName Source=System StackTrace:at System.Runtime.Versioning.frameworkName..ctor(字符串frameworkName)