windows 启动后应用程序找不到设置或图像文件

Application can't find settings or image files after windows boot

我有一个在 windows 启动后启动的应用程序。这很好用,但是应用程序似乎无法找到必要的 csv 文件和设置或导致崩溃的必要资源。但是,如果我在登录我的 Windows 帐户后手动打开它,应用程序工作正常。

我试图检查 csv 文件是否真的存在,但如上所述,应用程序找不到它。由于 csv 文件包含一些设置和语言数据,如果找不到文件

,应用程序将无法运行

在读出 csv 文件之前,我通过执行以下操作检查文件是否存在:

     try {
        string langFile = Path.Combine(Settings.Default.WorkingDirectory, "languageSupport.csv"); //Get language file
        // Read out the file
    } catch {
        MessageBox.Show("Could not load settings data!");
        Console.WriteLine("Error occured: " + e.Message);
    }

此外,我认为请务必注意以下事项:此错误仅在计算机关闭至少几个小时后才会发生。重新启动或关闭电脑并在几分钟后重新打开它不会给我错误。

我可以做些什么来改善这一点?为什么它自动启动时会崩溃,而我手动启动时不会?

这是因为当它自动加载时,工作目录与您从 .exe 手动打开它时不同,请尝试使用 AppDomain.CurrentDomain.BaseDirectory 以确保路径是相对于您的应用程序的,也您可以使用它来指定 .csv 文件路径,假设该文件与您的应用程序位于同一目录中:

try {
        string langFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "languageSupport.csv"); //Get language file
        // Read out the file
    } catch {
        MessageBox.Show("Could not load settings data!");
        Console.WriteLine("Error occured: " + e.Message);
    }