如何组织多个复合WPF应用程序,以便它们共享一个Shell项目,但从不同的App.config文件填充其模块目录?
我正在使用WPF的复合应用指南编写一套应用程序。每个应用程序的功能取决于Shell的App.config中列出的不同模块的可用性。通过为每个应用程序提供不同的App.config,我可以指定每个应用程序可以使用的模块。
但是我想在所有应用程序之间共享一个Shell项目以获得通用外观。最初我为每个应用程序创建了一个解决方案,添加了Shell项目,然后添加了相关的模块。问题是常见的Shell项目只有一个App.config文件,我不能在每个解决方案的基础上更改它。
通过代码填充目录并不能避免这个问题 - Shell中仍然会有特定于应用程序的代码,必须以某种方式由我正在使用的解决方案激活。
答案 0 :(得分:1)
我决定将壳牌视为自己的模块。每个应用程序都有自己的解决方案和项目,其中包含各个App.config文件。他们也有自己的Bootstrapper类。每个应用程序中的Bootstrapper都会实例化Shell。
答案 1 :(得分:0)
除了硬编码模块和从配置中加载模块外,您还可以从给定目录动态加载模块。
因此,要设置所有使用相同shell的不同“应用程序”,我将创建一个批处理文件,将每个应用程序的正确模块复制到单独的文件夹,从而创建不同的应用程序。
复合指导库文档中有更多关于设置项目以从目录动态加载模块的信息。