将外部dll作为模块运行时引用中断

时间:2016-07-05 09:06:42

标签: wpf visual-studio dll caliburn.micro

我正在尝试用https://github.com/lukebuehler/Caliburn-Composite-Prototype作为我的向导,使用Caliburn micro编写模块化应用程序。

然而,我遇到了一个问题,我确信这归结为我对VS的不熟悉以及所涉及的复杂设置。

基本上我有一个基础应用程序(仪表板),它使用Caliburn micro并覆盖SelectAssemblies,以便从名为Modules的子文件夹中加载dll(形成我的模块)。

protected override IEnumerable<Assembly> SelectAssemblies()
    {
        var assemblies = base.SelectAssemblies();
        var directory = new DirectoryInfo(@"Modules");
        var files = directory.GetFiles("*.dll", SearchOption.TopDirectoryOnly);
        //only load the the dlls that are from this namespace
        var modules = files.Where(f => f.Name.Contains("Dashboard"))
                            .Select(f => Assembly.LoadFile(f.FullName));
        return assemblies.Concat(modules);
    }

现在问题来自于这些dll是由主程序(Dashboard)运行的事实,然后我的所有引用都被破坏,除非我将它们移动到Dashboard的基本目录并且配置,否则无法找到DLL引用找不到文件(例如包含端点的文件)。

我需要做的是允许我的模块使用所需的外部lib和配置文件自包含,然后让仪表板知道在哪里找到这些文件。但是我不知道我需要做些什么才能让它发挥作用。

我希望我能正确解释。

0 个答案:

没有答案