我有一個可以動態運行多個插件的應用程序。安裝應用程序後,用戶只需將相應的插件放入安裝目錄,程序將根據接口動態加載它們。動態加載導致版本控制錯誤的程序集
我遇到的問題是插件引用主應用程序中的庫以訪問正確的接口並共享全局設置。我希望能夠隨時添加插件,而無需用戶重新安裝。然而,由於插件引用庫,當我嘗試加載它們,我收到錯誤:
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)
我知道如果我添加的所有插件的安裝程序我能避免這個錯誤,但如果我以後再添加一個新的插件,用戶將不得不卸載並重新安裝。動態加載插件的原因是,用戶可以放下一個新插件,並且它可以工作。
有沒有辦法讓插件在主應用程序中引用對象而不用擔心應用程序的版本?
謝謝。
這是非常經典的DLL地獄,該插件有一個相關的程序集,但CLR發現一個版本號錯誤。您可能不得不重新考慮「將文件夾放入文件夾」的方法。 –