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);
}
我有一个在 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);
}