我一直在努力为我正在开发的网站开发一个插件系统。除了场景之外我还能很好地工作。当插件本身具有依赖的dll时。
主站点只是一个简单的MVC站点,它引用了一些项目,其中包含用于插入新插件的文件夹观察器,插件界面,插件描述读取器,控制器工厂等。当站点加载它时查看主MVC站点内的plugins目录并加载每个使用IPlugin接口的dll。当插件初始化时,它会添加自己的路由。
如果插件本身是一个MVC站点项目,这一切都正常。当插件引用主MVC站点中未引用的内容时(例如插件自己的业务层项目),会出现问题。该网站加载正常但当您导航到'/ Admin'这是插件时,我得到以下错误: -
无法加载文件或程序集“AdminPlugin.Common,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一。系统找不到指定的文件。
如果我也从主MVC网站引用这个项目,我可以得到这个错误,但因为这是一个不是一个选项的插件系统。
我已经将解决方案上传到GitHub,因为粘贴太多了。我已经完成了通常的加载程序集,获取类型然后执行ActiveInstance等,这是在主MVC站点完成的。我应该在插件中这样做吗?有谁知道如何纠正这个选项。
GitHub中的当前解决方案处于给出错误的状态。 TestWebsite项目有一个名为'Plugins'的文件夹,插件'AdminPlugin.Web'构建到'Plugins'文件夹中名为'AdminPlugin'的文件夹中。如果您更改插件中的代码,则需要重建AdminPlugin.Web。它应该重建得很好。
我真的希望有人可以帮助解决这个问题,因为现在真的很烦人。)。