2010-09-23 28 views
2

我正在嘗試使用Winforms創建自動更新應用程序。我無法使用點擊一次或更新程序塊,因爲該應用程序也需要在Mono上運行。Winforms應用程序可以解鎖/替換自己的exe文件以進行自動更新嗎?

一旦我從web服務下載新的exe文件,是否有可能解鎖正在運行的exe文件,替換它,然後重新啓動應用程序?

+1

這是可能的,您可以重命名EXE,即使它正在運行。處理UAC或可運行Mono的操作系統規則是您必須理清的事情。 – 2010-09-23 19:33:47

回答

4

不可以。您不能替換正在運行的可執行文件。你會得到一個訪問衝突。

最好的選擇是創建一個獨立的小型可執行文件,爲您替換。您的應用程序可以調用它,關閉它,第二個可執行文件可以爲您執行下載/替換/重新啓動。

這也有一個好處,即允許您設置「更新」以要求提升權限,這可能是必需的,具體取決於您要更換的應用程序的安裝位置。

1

我不會這樣做(它不會工作,你會得到一個訪問衝突)。相反,您可以:

  • 將另一個可執行文件下載到用戶電腦的某處(例如臨時文檔或應用程序的文件夾),然後讓它更新您的程序。
  • 更新完成後,啓動更新的程序並將更新程序的位置傳遞給它,更新後的應用程序現在可以將其刪除。或者將更新程序保留在原來的位置。
相關問題