将 C# 应用程序拆分为模块部分

Split C# application into module parts

我有一个完全工作的应用程序,它有一个主应用程序和单独的 modules/program 函数存储在 dll 文件中。存储在 dll 文件中的表单动态加载到 FlowLayoutPanel 中。我会感兴趣的是,使用这种技术有什么缺点吗?因为一开始我在设置项目时遇到了问题,另一个解决方案是拥有一个主应用程序,但模块也是 .exe 应用程序 运行 它自己的 window.

假设您正在使用反射来加载 DLL,并且它们都是松散耦合的(正确使用接口)。您应该将所有模块项目设置为输出为 class 库(这将生成 .dll 文件,但不会为每个模块生成 .exe)。 然后可以使用 visual studio 中的 post-build 事件设置(对于每个模块项目)将每个模块的 DLL 文件自动复制到目标位置。事实证明,这对我来说效果很好。

example of post-build copy event