我正在尝试使用TestProject在visual studio中测试第三个pary API。我收到了错误。我在Test Project以及Business Logic项目中引用了第3个API。现在我将测试数据从测试项目传递给业务逻辑项目,导致错误。
[A] TIMSS.API.User.UserDefinedInfo.UserDefinedCustomerTechnicalDisciplinees无法强制转换为[B] TIMSS.API.User.UserDefinedInfo.UserDefinedCustomerTechnicalDisciplinees。类型A源自位于'C:\ Svad \ Trunk \ Source \ EBusiness \ EBusiness.Test \ bin'的上下文'LoadFrom'中的'TIMSS.API.User,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null' \ BIN \ TIMSS.API.User.dll”。类型B源自'TIMSS.API.User,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'在上下文'Default'位置'C:\ Svadlakonda \ Srikanth \ Trunk \ Source \ EBusiness \ EBusiness.Test \ BIN \ TIMSS.API.User.dll”。
这是什么问题?我尝试将测试项目引用的DLL引用到Copy Local
到false
,反之亦然仍然无效。
答案 0 :(得分:3)
假设两个程序集中的类型(或者可转换)(项目引用的类型和使用LoadFrom加载的类型),加载" LoadFrom"汇编到应用程序域应解决问题。这可能不是线程安全的,但值得尝试。
// This can cause "A cannot be cast to B" errors even using two exact copies of the same DLL.
var uncastableAssembly = Assembly.LoadFrom(filename);
// This shoud solve the casting issue but there still could be other issues.
var castableAssembly = AppDomain.CurrentDomain.Load(Assembly.LoadFrom(filename).GetName());
答案 1 :(得分:1)
我的错误是由于加载一个目标框架版本(例如4.5.2)的程序集低于它引用的另一个程序集(例如4.6.1)
答案 2 :(得分:0)
我遇到了这个错误,唯一修复它的是安装Microsoft .NET Framework 4.5.2(脱机安装程序) https://www.microsoft.com/en-us/download/details.aspx?id=42642
我之前也安装了SQL Server 2014客户端工具,这也可能通过安装较新的msxml 6.0版本产生了积极影响。
我的错误消息是:
[A] xx.xxxx.ClassUserDS无法转换为[B] xx.xxxx.ClassUserDS。类型A源自'yyyyyy,Version = 3.0.5617.31787,Culture = neutral,PublicKeyToken = 657d68e01eb7c911',位于'默认'位置'C:\ Users \ xxxxx \ Appdata \ Local \ assembly \ dl3 \ QQ3VBMNC.EO1 \ VYVECOB7 .H5J \ 2b6c89d2 \ 51158eea_9892d001 \ yyyyyy.DLL”。从'yyyyyy,Version = 3.0.5617.31787'中的'Loadyither'上下文中键入B orginates'C:\ Users \ xxxxx \ Appdata \ Local \ Microsoft \ InfoPath \ FormCache4 \ 30083E69.D18 \ cd264661b1055c58 $ b04f2786908cb791 \ yyyyyy.dll
我试着查看没有帮助的注册表HKCU \ Software \ Microsoft \ Fusion \。
我尝试重置办公室缓存,这没有帮助。
C:\Program Files (x86)\Microsoft Office\Office15\INFOPATH.EXE /cache clearall
or 64bit office 2013:
C:\Program Files\Microsoft Office\Office15\INFOPATH.EXE /cache clearall
or 64bit office 2010
C:\Program Files\Microsoft Office\Office14\INFOPATH.EXE /cache clearall
我尝试重置融合(GAC)缓存,我不知道该怎么做(除了从开始菜单运行“.NET Framework 1.1配置”以查看。)
答案 3 :(得分:0)
当我重命名aspx页面以隐藏它时,会发生此错误。
在我的情况下,我已将名为tutorials.aspx的文件重命名为tutorials-hidden.aspx。发布成功但是当我加载URL时出现错误500.通过添加tutorials.aspx文件然后从项目中删除它来修复。可能在csproj文件中还有一些定义。