我有一个可以动态运行多个插件的应用程序。安装应用程序后,用户只需将相应的插件放入安装目录,程序将根据界面动态加载它们。
我遇到的问题是插件引用了主应用程序中的一个库来访问正确的界面并共享全局设置。我希望能够随时添加插件,而无需用户重新安装。但是,由于插件引用了一个库,所以当我尝试加载它们时,我收到了错误:
Could not load file or assembly 'program', Version=0.1.0.24838, Culture=neutral, PublicKeyToken=623917...' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
我知道如果我将所有插件添加到安装程序中,我可以避免这个错误,但如果我稍后添加新插件,用户将不得不卸载并重新安装。动态加载插件的原因是用户只需放入一个新插件,它就可以工作。
有没有办法让插件引用主应用程序中的对象而不用担心应用程序的版本?
谢谢。