我收到以下错误:
具有显示名称' MyWinFormsAssembly'失败 加载' LoadFrom' AppDomain的绑定上下文ID为1。 失败的原因是:System.IO.FileNotFoundException:可以 不加载文件或程序集' MyWinFormsAssembly.Services.XmlSerializers, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个 依赖。系统找不到指定的文件。
我知道我可以跳过错误,我知道我之前收到过这个错误的XML序列化;但这是在网络服务电话上发生的。
该Web服务调用继续失败,并出现另一个错误:
无法加载文件或程序集 ' MyWinFormsAssembly.Services.XmlSerializers,版本= 1.0.0.0, Culture = neutral,PublicKeyToken = null'或其中一个依赖项。该 系统找不到指定的文件。
我实际上得到了两组这些错误,将Web服务连接起来;然后程序失败,它只是停止,崩溃,死亡,不再。
奇怪的是,如果我开始一个新项目,我可以使用相同的Web服务参考代码调用相同的Web服务;它运行得很好,在一个新的WinForms,WPF,WebForms,Console和MVC项目中,测试了其中一个。
但是当我将核心dll和程序集添加回其中时;我最终得到了这个错误。 我已经尝试在我的第一个代码行中调用它,但仍然会收到错误消息。我已经注释掉所有其他配置数据,将其卸载到另一个程序集,在我的主项目之外再次正常运行,并尝试再次运行它,第一行代码,没有配置数据,所有内容都被注释掉了,它仍然失败。
我唯一的半导致我已经到了某个地方,而且我真的不了解它,也不知道如何检查它,我是否会有命名冲突?
我将Web服务放在自己的XML命名空间中,并将其重命名为与Windows窗体程序集不同的名称(因为有人将其命名为相同的名称)。
我还将Windows窗体组件重命名为一个完全不同的名称,并将我的大多数类卸载到一个单独的"核心"部件。我有Web服务代码本身,它的配置,以及卸载到"服务"汇编(它无法找到XmlSerializers的那个),但它仍然没有用。
我已经把我的大脑震了近一个星期了,我们现在已经落后于生产版本。
答案 0 :(得分:0)
使用sgen.exe
为Web服务和服务包装器生成Serializers.dll,并且每个引用的程序集似乎都可以修复它。
但这并没有解释为什么我首先要解决问题,或者如何调试它的根本原因;或者为什么我需要生成一个序列化器DLL?那里必须有更好的答案。