2010-10-25 80 views
1

所以我創建一個插件系統爲我的應用程序。C#插件系統設計

我有以下組成部分: 1)主要應用 2)PluginInterface.dll 3)插件(S).dll文件

現在的問題是,當我創建我的插件和編譯它們,有不僅僅是Plugin.dll文件。它在Release目錄中具有其他必需的文件,例如它使用的PluginInterface.dll,xml配置文件等。

那麼,如何才能使它成爲用戶可以放入的單個dll文件一個插件目錄?

你認爲最好是插件是一個文件夾?然後,我必須掃描所有的文件夾正確DLL ...

回答

9

Managed Extensibility Framework是專爲插件的架構。在你沿着目前的路線走得太遠之前,請檢查一下。它可能會更好地爲您服務。

+0

我大約四年前,實現了自定義插件框架作爲項目的一部分。我可以說,我希望MEF可用。它會節省很多工作。我會推薦MEF。 – 2010-10-25 14:55:03

0

當您編譯插件項目,在引用您所看到的DLL文件,並選擇屬性單擊鼠標右鍵。在proepties中將「Copy Local」屬性設置爲「false」。確保這些DLL是您的主應用程序的一部分,否則代碼將無法找到依賴它的代碼時失敗。

0

如果你想這樣做,編譯您的解決方案時,你應該創建一個後生成事件(項目屬性 - >生成事件),只將所需的文件複製到插件目錄。 您也可以更改您的項目的OutputPath並使用「複製本地」選項爲「false」,但您不會具有與創建構建事件相同的控制級別。