String sAM_Path=@"C:\XXX.exe" Process _process = new Process(); _process.StartInfo.FileName = sAM_Path; _process.Start(); //Process.Start(sAM_Path);
結果B被叫起來執行後,馬上出現exception message。
(B單獨執行時是正確執行的...-___-)
直覺是在程式initail load的時後有bug,
結果因為無法用工具trace bug,只好一行一行手動trace。
最後發現... 程式B竟然去讀到程式A的設定檔啦!
雖然兩隻程式的設定檔名稱(setup.ini)都一樣,
但是各自放在A和B自己的資料夾下,理論上怎麼會有這種問題?
想了一下,應該是使用Process.Start()和讀取檔案路徑的關係,
所以小弟把讀取設定檔的檔案名稱,改為完整路徑,
再執行一次A-->B後,就不會發生讀到相同檔案的問題了。
//原本直接放設定檔名稱 //String SetupFilePath = "setup.ini"; //StreamReader sr = new StreamReader(SetupFilePath, Encoding.Default); //改為加上完整路徑+設定檔名稱 String SetupFilePath = Application.StartupPath + @"setup.ini"; StreamReader sr = new StreamReader(SetupFilePath, Encoding.Default);
恩,今天又發現寫檔案的時後,也是要帶系統完整執行路徑,否則會讀不到檔案 ~..~
回覆刪除