使用任务计划程序找不到文件

rde*_*dem 7 c# scheduled-tasks

在我的C#代码中,我使用XmlDocument 引用XML文件"file.xml",该文件与可执行文件本身位于同一目录中.

该应用程序在VS中运行得非常好,但是当我尝试使用Task Scheduler运行应用程序时,我得到了一个System.IO.FileNotFoundException,即使一切都是一样的.

我使用引用文件@".\file.xml".这是特定于任务计划程序的一些奇怪的东西吗?使用适当的权限.

Kas*_*ols 20

尝试为任务设置启动目录.您可以在任务计划程序中进行设置.

Select Task -> Right Click -> Properties -> Actions Tab -> Select Action -> Edit -> Start in (optional)

  • 这是*答案*,应该标记为:) (4认同)

wei*_*idi 6

我遇到了同样的问题,我试图打印出.Net为程序设置的各种路径,这是我机器上的结果

AppDomain.CurrentDomain.BaseDirectory: <my program folder>
Directory.GetCurrentDirectory();: C:\Windows\system32
Environment.CurrentDirectory: C:\Windows\system32
Run Code Online (Sandbox Code Playgroud)

所以你可能想用来AppDomain.CurrentDomain.BaseDirectory定位你的文件,如下所示:

string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "file.xml");
// use this path to open xml and do your work with it
Run Code Online (Sandbox Code Playgroud)


Jon*_*art 1

您需要将应用程序的当前工作目录设置为正确的路径。我不知道任务计划程序启动您的应用程序时会发生什么,但假设它从来都不是一个好主意。

您可以使用 来执行此操作Directory.SetCurrentDirectory()

或者,您可以使用XML 文件的绝对路径。