我爲應用程序添加更新程序(Myapp.exe)。當我啓動Myapp.exe時,它會檢查新的可用版本並根據用戶指令將其下載到Windows臨時目錄。將更新下載到Temp目錄後,新程序replacer.exe運行負責獲取Myapp.exe,終止其進程,刪除Myapp.exe並從Temp中複製新版本(Myapp.exe)目錄複製到Myapp.exe舊路徑。 replacer.exe有以下代碼。如何解決System.Unauthorized訪問異常?
class Program
{
static void Main(string[] args)
{
try
{
Process myProcess = Process.GetProcessesByName("Myapp")[0];
myProcess.Kill();
File.Delete(args[0]);
File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Temp\\Myapp.exe", args[0], false);
}
catch (Exception e)
{
Console.Write(e.ToString() + "");
//return;
}
//Console.Write("Success");
try
{
Process.Start(args[0]);
}
catch (Exception es)
{
Console.Write(es.ToString() + "");
//return;
}
Console.ReadLine();
}
}
但replacer.exe無法刪除Myapp.exe的,並給予例外System.UnauthorizedAccessException的。這就是說,在刪除Myapp.exe時,replacer.exe無法訪問Myapp.exe指定的路徑。注意:我已經以管理員和普通用戶的身份運行UserAccount,Myapp.exe和replacer.exe。 我該如何解決它。請幫幫我。 在此先感謝。 。 。
哪行引發異常? –
File.Delete(Path) –
args [0]內容沒有問題,Myapp.exe不是隻讀的。 –