无法加载文件或程序集';MyAssembly.XmlSerializers

本文关键字:MyAssembly XmlSerializers 程序集 加载 文件 | 更新日期: 2023-09-27 18:24:10

我对IIS进行了内存转储,在分析时发现错误,说"无法加载文件或程序集MyAssemblyName.XmlSerializer'。在我的代码中,我使用XmlSerializer类将xml内容从xml文件序列化和反序列化为自定义对象。"。当项目生成时,它只创建MyAssembly.dll和MyAssembly.pdb文件,而不创建MyAssembly.XmlSerializers.dll。有人知道如何使我的项目创建XmlSerializers.dll文件吗?

注意:在项目构建选项卡中,"生成序列化程序集"设置为"自动"

谢谢。

无法加载文件或程序集';MyAssembly.XmlSerializers

这里已经有了答案。显然,这是MS不会解决的"预期行为"。

第一条评论有一个变通方法:

解决这个问题的可能方法之一是在"工具"->"选项"->"调试"->"常规选项"中选中"仅我的代码"选项

您也可以使用Sgen.exe生成此程序集

对我来说,它位于:C:'Program Files (x86)'Microsoft SDKs'Windows'v8.1A'bin'NETFX 4.5.1 Tools

1. open cmd command
2. cd yourProjectPath
3. sgen Project.dll

以下命令创建一个名为Project.XmlSerializers.dll的程序集,用于序列化名为Project.dll的程序集中包含的所有类型。

创建MyAssembly.XmlSerializers.dll时,请确保它与项目的.NET版本相同。您可以使用dotPeek或ILSpy等软件进行检查。在visual studio中为我的.NET 3.5解决方案创建xmlserializer时,我也遇到了类似的问题,为项目设置了生成序列化程序集,但Sgen.exe是从C:''Program Files(x86)''Microsoft SDK''Windows''v10.0A''bin''NETFX 4.6.1 Tools中使用的,应该来自C:''Program Files。如果您的解决方案在.NET 3.5中,则MyAssembly.XmlSerializers.dll也必须在.NET 3.5 中