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

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

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

谢谢。

这里已经有了答案。 显然,这是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解决方案创建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中