You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF关联.flw文件启动时Framework.DLL加载失败问题

解决WPF文件关联启动时依赖DLL找不到的问题

我尝试将.flw文件扩展名与WPF应用关联,实现双击该文件时启动应用并加载内容。在MainWindow的Loaded事件中添加了以下代码:

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    string[] args = Environment.GetCommandLineArgs();

    foreach (string arg in args)
    {
        if (System.IO.Path.GetExtension(arg) == ".flw")
        {
            Console.WriteLine("Path = " + arg);
            SerializationHelper.LoadFlow(arg);
        }
    }
}

目前遇到的问题:.flw文件能正常读取,但应用依赖的Framework.DLL被提示找不到——系统会在.flw文件所在目录(如桌面)查找该DLL,而该DLL实际与应用exe处于同一目录。直接通过快捷方式启动应用则无此问题。


解决方法

  • 切换应用工作目录至exe所在路径
    双击文件启动应用时,系统默认的当前工作目录是该文件所在的文件夹,而非应用exe的目录,导致DLL加载路径错误。可以在App.xaml.cs的OnStartup方法中添加代码,强制将工作目录切换到exe所在目录:

    protected override void OnStartup(StartupEventArgs e)
    {
        string exeDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
        System.IO.Directory.SetCurrentDirectory(exeDirectory);
        base.OnStartup(e);
    }
    

    这样后续加载依赖DLL时,系统会优先在exe所在目录查找,即可解决找不到DLL的问题。

  • 确认命令行参数处理逻辑
    现有代码中获取的文件路径是绝对路径,所以加载.flw文件的逻辑不受工作目录影响,无需修改。只需确保工作目录切换完成后再执行后续操作即可。


内容的提问来源于stack exchange,提问作者Hasan H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 22:17:08