Jam*_*123 5 .net c# visual-studio visual-studio-2012
我正在尝试使用TestProject在Visual Studio中测试第三个pary API。我出错了。我已经在测试项目以及业务逻辑项目中引用了第三API。现在,我将测试数据从“测试”项目传递到“业务逻辑”项目,但出现以下错误。
无法将[A] TIMSS.API.User.UserDefinedInfo.UserDefinedCustomerTechnicalDisciplinees强制转换为[B] TIMSS.API.User.UserDefinedInfo.UserDefinedCustomerTechnicalDisciplinees。类型A源自上下文'LoadFrom'中位置'C:\ Svad \ Trunk \ Source \ EBusiness \ EBusiness.Test \ bin'的'TIMSS.API.User,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null' \ bin \ TIMSS.API.User.dll'。类型B源自位置``C:\ Svadlakonda \ Srikanth \ Trunk \ Source \ EBusiness \ EBusiness.Test''的``默认''上下文中的'TIMSS.API.User,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null' \ bin \ TIMSS.API.User.dll'。
这是什么问题?我尝试使Test Project将DLL引用Copy Local到false,反之亦然。
小智 6
假设两个程序集(项目引用的程序集和使用 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());
Run Code Online (Sandbox Code Playgroud)
我遇到了这个错误,唯一解决这个问题的是安装 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'。类型 B 源自位置“C:\Users\xxxxx\Appdata\Local\Microsoft\InfoPath\FormCache4\30083E69.D18\cd264661b1055c58$b04f2786908cb791\yyyyyy.dll”上下文“LoadNeither”中的“yyyyyy,Version=3.0.5617.31787”
我尝试在 regedit HKCU\Software\Microsoft\Fusion\ 中查找,但没有帮助。
我尝试重置 Office 缓存,但没有帮助。
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
Run Code Online (Sandbox Code Playgroud)
我尝试重置融合(GAC)缓存,但我不知道该怎么做(除了从开始菜单运行“.NET Framework 1.1 Configuration”来看看。)