在插件系统C#

时间:2017-09-09 12:41:31

标签: c# dll plugins .net-assembly

我有一个使用基于接口的插件的项目,它们在同一主项目解决方案中的其他“类库”项目中编码。主项目有一个文件夹,其中包含dll格式的所有插件。例如,我在“Bin / Debug /”中有一个Plugins文件夹。所有插件都在该目录上编译。

每个插件项目都有一个对主项目的引用,因为它使用主框架(引用不是本地复制的)。

每个插件应该能够使用其他插件中的方法,这里我有问题。

示例:

我有PluginA和PluginB,2个DLL,2个不同的项目,但DLL在同一个Plugins文件夹中。

现在我想在PluginA类中实例化PluginB,所以我添加了对PluginB DLL的引用(不是本地复制的)。编译器没有错误。 但是当我在加载所有插件程序集后在主项目上实现PluginA时,我得到一个System.IO.FileNotFoundException程序集或文件未找到。 (简称插件B)

基本上似乎当我调用插件时,从主项目调用另一个插件,我得到一个错误。我也尝试过使用Assembly Resolve事件而没有成功。

也许我在整个插件系统上犯了一些错误,这是我第一次使用它们。

对不起我的英文,我是意大利人。

感谢您的帮助。

0 个答案:

没有答案