【发布时间】:2015-04-30 22:29:27
【问题描述】:
我正在尝试使用 TestProject 在 Visual Studio 中测试第三方 API。我收到错误。我在测试项目和业务逻辑项目中引用了第 3 个 API。现在我将测试数据从测试项目传递到业务逻辑项目,出现以下错误。
[A]TIMSS.API.User.UserDefinedInfo.UserDefinedCustomerTechnicalDisciplinees 无法转换为 [B]TIMSS.API.User.UserDefinedInfo.UserDefinedCustomerTechnicalDisciplinees。类型 A 源自 'TIMSS.API.User, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 在位置 'C:\Svad\Trunk\Source\EBusiness\EBusiness.Test\bin 的上下文 'LoadFrom' 中\bin\TIMSS.API.User.dll'。类型 B 源自 'TIMSS.API.User, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 在位置'C:\Svadlakonda\Srikanth\Trunk\Source\EBusiness\EBusiness.Test 的上下文'Default' \bin\TIMSS.API.User.dll'。
这里有什么问题?我尝试将测试项目引用的 DLL 设置为 Copy Local 到 false,反之亦然。
【问题讨论】:
-
似乎正在尝试在两个项目中加载 dll。尝试仅在您特别需要的项目中引用,然后在其他项目中引用子项目。基本上类似于 TestProject > Business Logic > API。它还试图从不同的位置复制。
-
看起来您正在
LoadFrom上下文中加载和组装(可能使用Assembly.LoadFrom())。LoadFrom上下文中的类型不能转换为/从默认上下文中的类型转换。您是否有理由需要使用LoadFrom上下文? -
您正在为两个项目的同一个程序集引用不同的二进制文件:
C:\Svad\Trunk\Source\EBusiness\EBusiness.Test\bin\bin\TIMSS.API.User.dll和C:\Svadlakonda\Srikanth\Trunk\Source\EBusiness\EBusiness.Test\bin\TIMSS.API.User.dll您应该修复项目中的引用,以便仅引用这两个中的一个,或者如果动态加载:确保从同一位置加载。
标签: c# .net visual-studio visual-studio-2012