簡體   English   中英

重命名正在運行的應用程序 - 危險嗎?

[英]rename a running application - dangerous?

我正在編寫一個小實用程序來更新我們的應用程序。

為了更新更新實用程序,我希望它在運行時重命名並從遠程源復制新版本。 因此,下次啟動更新程序時,您將獲得一個新版本。

您知道使用該機制可能發生的任何問題嗎?

實際上我很驚訝它完全可以重命名正在運行的程序(在那里丟失了一個蛋糕......),而不允許刪除。

任何提示的親切問候

使用 Win XP,.NET 3.5

您可以重命名 - 因為它僅更改元數據,但實際的文件分配鏈未修改,這意味着它們可以在使用它的進程中保持內存映射。

這是安裝程序中普遍存在的技巧,當他們必須升級“實時”運行的二進制文件時。

如果應用程序稍后嘗試從原始文件規范重新打開,則可能會導致麻煩。 這不是可執行文件或 dll 經常發生的事情,盡管您應該了解可能進行一些自我認證(許可證檢查)的嵌入式資源和程序。 通常最好盡早重啟相應的應用程序,就像 windows 會敦促您在系統更新時重啟

重命名 an.exe 通常沒有任何問題 - 重命名.dll 是另一回事。

我建議改用子目錄(標有日期或版本號)並創建一個小型啟動器應用程序(與“真實”應用程序具有相同的名稱和圖標),從文本文件中讀取當前版本並啟動它。

IE

updater.exe (the launcher)
updater.config (containing /updater_v_02/updater.exe)
 /updater_v_01/updater.exe (the real app, v 01)
 /updater_v_02/updater.exe (the real app, v 02)

這樣,您可以

  • 保留應用程序的多個版本
  • 在您的用戶繼續使用舊版本時測試新版本(通過直接從子目錄啟動它)
  • 輕松切換 DLL 等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM