1

我有反序列化 XML 文件中的一些数据的程序。当我使用 VS 调试器启动程序或直接单击 .exe 文件时,这非常有效。但是当我使用微软任务计划程序启动程序时,反序列化不起作用,但程序启动了。该任务直接指向带有 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;
        }
    } 
4

1 回答 1

3

很可能它没有在正确的目录中执行。当你创建你的计划任务时,你需要告诉它从哪个目录开始。否则它会从默认目录开始,这几乎肯定不是你想要的。

通常,您将应用程序设置放在应用程序的 App.Config 文件中。如果您使用内置设置的东西,这一切都为您处理。看:

于 2013-11-07T15:30:14.433 回答