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)
我遇到了同样的问题,我试图打印出.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)
您需要将应用程序的当前工作目录设置为正确的路径。我不知道任务计划程序启动您的应用程序时会发生什么,但假设它从来都不是一个好主意。
您可以使用 来执行此操作Directory.SetCurrentDirectory()。
或者,您可以使用XML 文件的绝对路径。