首先,我們啓動子進程的時候,要修改子進程的工作目錄。
ProcessStartInfo pi = new ProcessStartInfo(fileName, arguments) { WorkingDirectory = Path.GetTempPath() }; pp.StartInfo = pi; pp.Start();
這裏我把工作目錄隨便指定了一個地方,目的是防止子進程默認繼承了主進程的工作目錄。如果你省了這一個地方,只要子進程開着,那它的工作目錄就和主進程的工作目錄是一樣的,結局就是子進程刪除主進程的工作目錄,其實是被子進程自己佔用着的,就算主線程關閉了也是如此。
比如,你想做最簡單的installer.exe更新,可能就是主線程下載,主線程啓動installer.exe執行靜默安裝(更新),然後發現bong,出問題了。