【问题标题】:Plugin architecture in C# with external dll like Open.XML from NugetC# 中的插件架构,带有来自 Nuget 的 Open.XML 等外部 dll
【发布时间】:2018-06-15 12:20:12
【问题描述】:

我在 C# 应用程序中创建了一个插件架构。在特殊文件夹中,我上传 dll 并系统搜索某些接口,并在插件中使用反射调用函数。但是其中一个插件(dll)引用了 Open.XML dll,它没有安装在运行应用程序的服务器上。它是一种创建包含它需要的所有库的插件(编译它?)的方法。还是应该以不同的方式完成?

【问题讨论】:

    标签: c# dll plugins architecture


    【解决方案1】:

    1) 将任何所需的 DLL 与插件 DLL 一起分发,并将它们放在插件文件夹中。将插件文件夹添加到程序集in the app.configadd a handler for the AssemblyResolve event 的探测路径。

    2) 使用ILMerge 将插件和所需的程序集合并为一个程序集。 如果您将所有插件加载到同一个应用程序域中,如果将相同类型合并到多个插件中,这将导致有趣的问题。

    【讨论】:

    • 我已经从命令行尝试了 ILMerge,但是在合并我的插件(C# 类库)和 OpenXML dll 期间 - 程序创建了空 dll 并且没有响应。在日志中没有错误。最后记录的库始终是:System.Data.SqlXml.dll'
    猜你喜欢
    • 2011-06-12
    • 2011-10-17
    • 2011-03-16
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多