我有一个通用的问题可能是一些独特的行为(它让我很生气)。我在Visual Studio 2012中使用.Net framework 4.5。我正面临运行单元测试的问题:
FileLoadException Occured:无法加载文件或程序集 'System.Web.Http,Version = 5.2.0.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。该 找到程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)
我的单元测试app.config具有以下配置
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</dependentAssembly>
我的项目(单元测试调用方法)具有以下内容
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</dependentAssembly>
现在奇怪的问题是,我能够在我的机器上成功运行单元测试(安装了VS 2013和VS 2012)。但是在我的同事的机器上(仅安装了VS 2012),它失败并出现上述错误。我从哪里获得此5.2.0.0
版本号?
解决方案(包括单元测试)在Build服务器中运行良好。所以我假设我的机器配置很好,我的同事的机器有一些问题。 GAC中没有项目Dll。
我做了什么
显示名称为“System.Web.Http”的程序集无法加载 '加载'AppDomain的绑定上下文,ID为2.原因 失败的原因是:System.IO.FileLoadException:无法加载文件或 程序集'System.Web.Http,Version = 5.2.0.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。该 找到程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)
bin/debug
文件夹。两者都有5.2.2.0
版本的DLL(预期)。但不确定为什么我的5.2.0.0
版本需要运行测试?请记住,我的机器能够使用相同的配置成功运行单元测试。我假设不需要任何代码更改。可以请任何人帮我解决这个问题吗?
感谢。