C# .XmlSerializers.dll未加载

C# .XmlSerializers.dll未加载,c#,serialization,C#,Serialization,我有一个c#BHO taht使用CML序列化。为了避免提示csc.exe生成用于序列化的程序集,我使用sgen创建了My.App.xmlsializers.dll作为构建的一部分。但是My.App.dll无法批量加载My.App.XmlSerializers.dll: LOADED ASSEMBLIES: My.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=615a444ac04be6dd FirstChanceException

我有一个c#BHO taht使用CML序列化。为了避免提示csc.exe生成用于序列化的程序集,我使用sgen创建了My.App.xmlsializers.dll作为构建的一部分。但是My.App.dll无法批量加载My.App.XmlSerializers.dll:

LOADED ASSEMBLIES:
My.App, Version=1.0.0.0, Culture=neutral, PublicKeyToken=615a444ac04be6dd

FirstChanceException event raised in DefaultDomain: Could not load file or assembly 'My.App.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=615a444ac04be6dd' or one of its dependencies. The system cannot find the file specified. - C:\MyPath\bin\Debug\My.App.dll
我做了很多研究,我已经证实:

  • 两个DLL位于同一文件夹中
  • 两个DLL都使用相同的强密钥进行签名

我不明白为什么找不到My.App.XmlSerializers.dll或无法正确加载。此链接将为您提供解决方案: 您有3种选择:

  • 将构建操作:GenerateSerializationAssembly更改为Off
  • 将“程序集名称”重命名为与项目属性的“应用程序”选项卡中的“默认命名空间”相同
  • 使用AppDomain.CurrentDomain.AssemblyResolve事件,您可以在此处找到示例:

  • 此链接将为您提供以下解决方案: 您有3种选择:

  • 将构建操作:GenerateSerializationAssembly更改为Off
  • 将“程序集名称”重命名为与项目属性的“应用程序”选项卡中的“默认命名空间”相同
  • 使用AppDomain.CurrentDomain.AssemblyResolve事件,您可以在此处找到示例:

  • 使用fuslogvw.exe对程序集解析问题进行疑难解答。@Hans当通过IED加载DLL时,该工具不显示任何内容。您是否了解此问题的底部?使用fuslogvw.exe对程序集解析问题进行疑难解答。@Hans当通过IED加载DLL时,该工具不显示任何内容。您是否了解此问题的底部?