在我的 C#代码中,我引用了一个XML文件“file.xml”,它与可执行文件本身位于同一目录中,使用XmlDocument。
应用程序在VS中运行得非常好,但是当我尝试使用任务计划程序运行应用程序时,我得到System.IO.FileNotFoundException
,即使所有内容都相同。
我使用@".\file.xml"
引用该文件。这是特定于任务计划程序的一些奇怪的东西吗?使用适当的权限。
答案 0 :(得分:17)
尝试为任务设置启动目录。您可以在任务计划程序中进行设置。
Select Task -> Right Click -> Properties -> Actions Tab -> Select Action -> Edit -> Start in (optional)
答案 1 :(得分:6)
我遇到了同样的问题,我试图打印出.Net为程序设置的各种路径,这是我机器上的结果
AppDomain.CurrentDomain.BaseDirectory: <my program folder>
Directory.GetCurrentDirectory();: C:\Windows\system32
Environment.CurrentDirectory: C:\Windows\system32
因此您可能希望使用AppDomain.CurrentDomain.BaseDirectory
找到您的文件,如下所示:
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "file.xml");
// use this path to open xml and do your work with it
答案 2 :(得分:0)
您需要将应用程序的当前工作目录设置为正确的路径。我不知道Task Scheduler启动你的应用程序时它是什么,但是假设它绝不是一个好主意。
您可以使用Directory.SetCurrentDirectory()
完成此操作。
或者,您可以使用绝对路径到XML文件。
答案 3 :(得分:0)
尝试使用
参考您的文档Application.StartupPath(@"\file.xml")