我有一个在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);
}
此外,我认为没有必要注意以下几点:仅在计算机关闭至少几个小时后才会发生此错误。几分钟后重新启动或关闭PC并重新打开,不会出现错误。
我该怎么做才能改善这一点?为什么它会在自动启动时崩溃而不是在我手动启动时崩溃?
答案 0 :(得分:1)
这是因为,当自动加载工作目录时,与从.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);
}