gpt4 book ai didi

c# - 可移植类库中的 FileNotFoundException?

转载 作者:行者123 更新时间:2023-11-30 22:32:51 26 4
gpt4 key购买 nike

我有 3 个程序集,一个 WP7 应用程序(针对 7.0),一个 Web 服务项目(运行 4.0)和一个包含通用类型的可移植类库(从模板构建并针对 WP7、SL4 和 .NET 4.0)在前两者之间使用。

当在本地(在 IIS Express 中)运行时一切正常,但是当针对部署的 Web 服务程序集实例(在我几乎无法控制的远程 IIS 服务器上)运行时失败,出现以下异常:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified. File name: 'System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Xml.Serialization, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Retargetable=Yes' or one of its dependencies. The system cannot find the file specified. File name: 'System.Xml.Serialization, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Retargetable=Yes'

堆栈跟踪表明它是在第一次调用 PCL 时,如果它是像上面那样的类型加载失败,这将是有意义的。

如果我删除对 PCL 程序集的引用,然后将关键类文件添加到两个程序集,一切正常,但是我想避免这种代码重复...所以问题是:为什么这发生了?如何配置 PCL 以按照写入的方式运行?

编辑:更多信息...我的 PCL 使用 XmlSerializer ,存在于桌面上的 System.Xml.dll 和 Silverlight 中的 System.Xml.Serialization.xml 中的东西......在完整的桌面框架下不存在的程序集......所以这种失败是有道理的,仅在 PCL 世界中,其中一些程序集/类是自行分解的

在这种情况下,XmlSerializer 实际上位于 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\Profile\Profile2\System.Xml.Serialization.dll(由 PCL 引用)...作为测试,我添加了对 Web 项目的相同引用...但是在 Web 项目的运行时,它失败并出现蓝屏死机,指出:

Could not load file or assembly 'System.Xml.Serialization' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

最佳答案

您需要安装 KB2468871在远程服务器上。这是一个已推送到大多数客户端计算机的 GDR - 但是,服务器需要选择加入它(它们通常不会自动安装更新)。

关于c# - 可移植类库中的 FileNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8566193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com