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

C# 无法加载文件或程序集';MyAssembly.XmlSerializers,c#,visual-studio-2010,dll,xmlserializer,C#,Visual Studio 2010,Dll,Xmlserializer,我对IIS进行了内存转储,在分析时发现错误,错误是“无法加载文件或程序集MyAssemblyName.XmlSerializers”。在我的代码中,我使用XmlSerializer类将xml内容从xml文件序列化和反序列化到自定义对象。当项目生成时,它只创建MyAssembly.dll和MyAssembly.pdb文件,而不创建MyAssembly.XmlSerializers.dll。有人知道如何使我的项目能够创建xmlserializers.dll文件吗 注意:在“项目生成”选项卡中,“生成

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

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

谢谢。

已经有答案了。显然,这是微软不会纠正的“预期行为”

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

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


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

对我来说,它位于:
C:\ProgramFiles(x86)\Microsoft SDK\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时,我遇到了类似的问题,project的generate serialization assembly设置为on,但Sgen.exe是从C:\Program Files(x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1工具使用的,并且应该是从C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\bin使用的。
如果您的解决方案在.NET 3.5 MyAssembly.XmlSerializers.dll中,那么它也必须在.NET 3.5中,这是一个很大的帮助!谁会想到这个解决办法;所有代码都在同一个项目中-只有一个.NET版本可以对所有代码进行管理:)