我有一个程序可以从XML文件中反序列化一些数据。当我使用VS Debugger启动程序或直接单击.exe文件时,这非常正常。但是,当我使用Microsoft任务计划程序启动程序时,反序列化不起作用,但程序启动。该任务直接指向包含xml文件和.exe。
的目录方法:
internal static Settings DeserializeSettings()
{
var path = Directory.GetCurrentDirectory() + "\\settings.xml";
XmlSerializer mySerializer = new XmlSerializer(typeof(Settings));
using (FileStream myFileStream =
new FileStream(path, FileMode.Open))
{
Settings test = new Settings();
if (!(myFileStream.Length <= 0))
{
test = (Settings)mySerializer.Deserialize(myFileStream);
}
return test;
}
}
答案 0 :(得分:3)
很可能它没有在正确的目录中执行。当您创建计划任务时,您需要告诉它从哪个目录开始。否则它将从默认目录开始,这几乎肯定不是您想要的目录。
通常,您将应用程序设置放在应用程序的App.Config文件中。如果你使用内置设置的东西,它都是为你处理的。参见: