我有一个解决方案,其中包含一个名为 Shell 的 Blazor wasm 项目和一些作为模块的 Razor 类库项目。
正如 SOLID 的依赖反转主体所说“高级模块不应从低级模块导入任何内容”,所以我不希望我的 Shell 项目对模块有任何引用。
每个模块都有一个对 Shell 的引用,并实现了一个名为 IModule 的接口,该接口在 Shell 项目中定义。此外,我还向 Modules 添加了一个构建后命令,并将它们的输出 xcopy 到 Shell 项目输出目录。
Shell 应该在运行时使用反射找到实现 IModule 接口的程序集,并将它们添加到其路由器的 AdditionalAssemblies 中。但是当我运行这个程序时,反射找不到模块的dll文件,因为它们没有复制到客户端的浏览器中。
有没有办法将这些程序集添加到正在复制到客户端的文件中并防止“摇树”在生产中删除它们?