35

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

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

谢谢。

4

3 回答 3

56

这里已经有答案了。显然,这是 MS 不会修复的“预期行为”。

第一条评论有一个解决方法:

解决此问题的一种可能方法是检查工具 -> 选项 -> 调试 -> 常规选项中的“仅我的代码”选项

于 2014-03-27T08:29:45.300 回答
2

您还可以使用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 的程序集中包含的所有类型。

于 2018-07-31T12:37:54.383 回答
1

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

于 2018-10-17T06:47:33.333 回答