2

我有 ac# BHO taht 使用 CML 序列化。为了避免 IT 提示 csc.exe 生成用于序列化的程序集,我创建了 My.App.XmlSerializers.dll 作为使用 sgen 构建的一部分。但是 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 没有找到或 loadec 不正确。

4

1 回答 1

0

此链接将为您提供解决方案: MyAssembly.XmlSerializers.dll 生成的目的是什么? 您有 3 个选项:

  1. 更改构建选项:GenerateSerializationAssemblies 为 Off
  2. 在项目属性的“应用程序”选项卡中将“程序集名称”重命名为与“默认命名空间”相同
  3. 使用 AppDomain.CurrentDomain.AssemblyResolve 事件,您可以在此处找到示例:如何在运行时更新配置文件中的 assemblyBinding 部分?
于 2018-05-07T22:32:30.693 回答