我有一个名叫
我还有一个名叫
如何让我的 DLL 读入相应的生成的 XmlSerializer DLL 呢?
编辑:我不能把 XmlSerializer DLL 放到可执行文件目录中,因为我的 DLL 是 Visual Studio 扩展的一部分 —— 可执行文件是 Visual Studio(devenv.exe),将我的产品的某些部分复制到其目录下可能会被视为反社会行为。 :-)
添加更多上下文的编辑:这是一个 Visual Studio 插件和扩展程序。它适用于从 2005 年到 2017 年的所有版本的 Visual Studio。大部分代码都安装在 Program Files 中,旧版的 Visual Studio 只需作为插件之一从那里加载即可。对于新版的 Visual Studio,不支持插件,只需使用扩展程序来加载位于 Program Files 中的主要组件。这个扩展程序使用
ess.exe
的可执行文件。我使用 sgen.exe
为该文件生成一个 XmlSerializer DLL,在运行时它会读入生成的 ess.XmlSerializers.dll
文件,所有操作都很顺利。我还有一个名叫
EntrianSourceSearch_14.dll
的 DLL,它是通过 Assembly.LoadFrom(DllPathname)
动态加载的。如果我为该 DLL 生成一个 XmlSerializer DLL,它并不会读入这个生成的 DLL;它会回到运行时生成 XML 序列化代码。如何让我的 DLL 读入相应的生成的 XmlSerializer DLL 呢?
编辑:我不能把 XmlSerializer DLL 放到可执行文件目录中,因为我的 DLL 是 Visual Studio 扩展的一部分 —— 可执行文件是 Visual Studio(devenv.exe),将我的产品的某些部分复制到其目录下可能会被视为反社会行为。 :-)
添加更多上下文的编辑:这是一个 Visual Studio 插件和扩展程序。它适用于从 2005 年到 2017 年的所有版本的 Visual Studio。大部分代码都安装在 Program Files 中,旧版的 Visual Studio 只需作为插件之一从那里加载即可。对于新版的 Visual Studio,不支持插件,只需使用扩展程序来加载位于 Program Files 中的主要组件。这个扩展程序使用
LoadFrom
来加载那些主要组件,其中之一是 EntrianSourceSearch_14.dll
。
Assembly.LoadFrom
的代码 - 你能做到吗?如果可以,请尝试这样做:将Assembly.LoadFrom
替换为Assembly.Load(AssemblyName)
并提供AssemblyName
的Name
和CodeBase
属性。然后在尝试任何 XML 序列化之前使用相同的技术加载您的序列化程序集。您可以尝试仅在序列化程序集上调用LoadFrom
,但是请先阅读此文档。 - Lucas Trzesniewski