我正在嘗試使用Winforms創建自動更新應用程序。我無法使用點擊一次或更新程序塊,因爲該應用程序也需要在Mono上運行。Winforms應用程序可以解鎖/替換自己的exe文件以進行自動更新嗎?
一旦我從web服務下載新的exe文件,是否有可能解鎖正在運行的exe文件,替換它,然後重新啓動應用程序?
我正在嘗試使用Winforms創建自動更新應用程序。我無法使用點擊一次或更新程序塊,因爲該應用程序也需要在Mono上運行。Winforms應用程序可以解鎖/替換自己的exe文件以進行自動更新嗎?
一旦我從web服務下載新的exe文件,是否有可能解鎖正在運行的exe文件,替換它,然後重新啓動應用程序?
不可以。您不能替換正在運行的可執行文件。你會得到一個訪問衝突。
最好的選擇是創建一個獨立的小型可執行文件,爲您替換。您的應用程序可以調用它,關閉它,第二個可執行文件可以爲您執行下載/替換/重新啓動。
這也有一個好處,即允許您設置「更新」以要求提升權限,這可能是必需的,具體取決於您要更換的應用程序的安裝位置。
我不會這樣做(它不會工作,你會得到一個訪問衝突)。相反,您可以:
這是可能的,您可以重命名EXE,即使它正在運行。處理UAC或可運行Mono的操作系統規則是您必須理清的事情。 – 2010-09-23 19:33:47