我正在尝试构建一个.NET 客户端软件包,可以按需下载其组件。
假设我有一个程序被拆分为一个主可执行文件和 20 个其他 dll 文件。主程序引用了其中的 3 个,它们引用了其他一些,无论如何......它们有某种树状依赖结构。
我要实现的目标是仅分发主要可执行文件并按需从服务器位置获取其他所有内容。
像这样:主程序和所有这些 dll 项目都在一个解决方案中,并且像任何其他解决方案一样构建在一起。分发时,仅分发exe,其他dll(包括使用的一些第三方库)放在可供下载的服务器位置。
exe运行,显示一些UI,当用户单击菜单项时,将显示来自dll文件的另一个UI窗口,因此操作系统会查找dll(不存在),我进行干预,从下载所需的dll服务器,把它放在exe旁边,让操作系统加载它,就好像它从一开始就在那里一样。
这看起来可以通过使用通用接口类和一些反射魔法来实现,但我希望有更多的东西,包括在一个解决方案中完全构建 dll 的东西,包括按需下载 3rd 方库的东西。
任何想法如何做到这一点?