【问题标题】:Could not load file or assembly 'MyAssembly.XmlSerializers [duplicate]无法加载文件或程序集'MyAssembly.XmlSerializers [重复]
【发布时间】:2013-07-19 21:10:22
【问题描述】:

我对 IIS 进行了内存转储,并在分析时发现了错误提示 'Could not load file or assembly MyAssemblyName.XmlSerializers'。在我的代码中,我使用 XmlSerializer 类将 xml 内容从 xml 文件序列化和反序列化为自定义对象。当项目构建时,它只创建 MyAssembly.dll 和 MyAssembly.pdb 文件,而不是 MyAssembly.XmlSerializers.dll。有谁知道如何让我的项目创建 xmlserializers.dll 文件?

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

谢谢。

【问题讨论】:

    标签: c# visual-studio-2010 dll xmlserializer


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是一个很大的帮助!谁会猜到这种解决方法。
    • 这对我有用。
    【解决方案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 的程序集中包含的所有类型。

    【讨论】:

      【解决方案3】:

      当您创建 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 中

      【讨论】:

      • 老兄;所有代码都在同一个项目中——只有一个 .NET 版本来统治它们:)
      猜你喜欢
      • 2011-07-10
      • 2017-12-31
      • 2012-11-10
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 2020-08-17
      相关资源
      最近更新 更多