在我的C#代碼中,我使用XmlDocument引用XML文件「file.xml」,它與可執行文件本身位於同一目錄中。使用任務計劃程序找不到文件
該應用程序在VS中運行良好,但是當我嘗試使用Task Scheduler運行應用程序時,即使所有內容都一樣,我也會得到System.IO.FileNotFoundException
。
我使用@".\file.xml"
來引用文件。這是一些奇怪的東西特定於任務計劃?使用適當的權限。
在我的C#代碼中,我使用XmlDocument引用XML文件「file.xml」,它與可執行文件本身位於同一目錄中。使用任務計劃程序找不到文件
該應用程序在VS中運行良好,但是當我嘗試使用Task Scheduler運行應用程序時,即使所有內容都一樣,我也會得到System.IO.FileNotFoundException
。
我使用@".\file.xml"
來引用文件。這是一些奇怪的東西特定於任務計劃?使用適當的權限。
您需要將應用程序的當前工作目錄設置爲正確的路徑。我不知道Task Scheduler何時啓動您的應用程序,但這不是一個好主意。
你可以用Directory.SetCurrentDirectory()
這樣做。
或者,您可以使用絕對路徑到XML文件。
嘗試設置任務啓動目錄指的文檔。您可以在任務計劃程序中進行設置。
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
所以你可能要使用AppDomain.CurrentDomain.BaseDirectory
找到您的文件,如下所示:
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "file.xml");
// use this path to open xml and do your work with it
您是否設置了任務的工作目錄? –
該程序可能運行在Task Scheduler下的一個不同的*當前工作目錄下,而不是在你測試它時。 –