我和System.BadImageFormatException: Could not load file or assembly有类似的错误 . 但是解决错误的条件是不同的 .
测试名称:Test_DisableTestUserAccount测试FullName:测试源:测试结果:失败测试持续时间:0:00:00结果消息:无法获取#typename#类型 . 错误:System.IO.FileLoadException:无法加载文件或程序集'ComponentName.IntTest,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = a433f9a8cee952'或其依赖项之一 . 强名称验证失败 . (从HRESULT异常:0x8013141A)文件名: 'ComponentName.IntTest,版本= 1.0.0.0,文化=中性公钥= 433f9a8cee952' ---> System.Security.SecurityException:强名称验证失败 . (来自HRESULT的异常:0x8013141A)失败的程序集区域是:System.Reflection.RuntimeAssembly._nLoad中的MyComputer(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,布料suppressSecurityChecks)在System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef) ,证据assemblySecurity,RuntimeAssembly reqAssembly,StackCrawlMark&stackMark,IntPtr的pPrivHostBinder,布尔throwOnFileNotFound,布尔forIntrospection,布尔suppressSecurityChecks)在System.Reflection.RuntimeAssembly.InternalLoadFrom(字符串assemblyFi le,Evidence securityEvidence,Byte [] hashValue,AssemblyHashAlgorithm hashAlgorithm,Boolean forIntrospection,Boolean suppressSecurityChecks,StackCrawlMark&stackMark)at System.Reflection.Assembly.LoadFrom(String assemblyFile)at Microsoft.VisualStudio.TestPlatform.MSTestFramework.TypeCache.LoadType(String typeName,字符串assemblyName)
条件:
-
该解决方案具有C#控制台应用程序及其UnitTest项目
-
InternalsVisibleTo从控制台应用程序启用到单元项目
-
所有项目都是名字签名
-
sln平台有两个配置:x64和x86(其他被删除)
当我运行将访问控制台应用程序的内部元素的单元测试用例时,测试用例将失败并抛出异常 .
2 回答
问题的根本原因是我使用x64平台构建sln并使用x86测试设置运行测试用例 .
只需使用正确的测试设置平台来运行测试用例:
截图:
在VS2010中,它应该是
测试 - 编辑测试设置 - 本地 - 主机
另外,您需要检查Build - Configuration Manager