2014-11-04 65 views
0

我想在我的Python應用程序中實現一個autoupdater。源版本沒有問題; Python完全不關心它正在運行的腳本是否試圖覆蓋自己。使用cx_freeze時,需要更新哪些文件才能更新應用程序?

但是,如果EXE嘗試覆蓋自身,Windows並不關心。我的問題是,我的EXE是否必須覆蓋自己?或者EXE只是一個解釋器,我只需要覆蓋library.zip?

如果是這樣,是否有其他選擇啓動更新應用程序並關閉主EXE?

回答

1

cx_Freeze exe是與cx_Freeze一起編譯的,所以在大多數情況下,您可以放心地單獨使用,只需更新library.zip。但是,您應該確保使用與最初凍結應用程序相同版本的cx_Freeze來準備更新,以防期望其周圍文件的特定情況。

此外,該exe文件會加蓋與您的應用程序相關的版本號(您可以在文件屬性中看到它)。如果你不替換它,那個版本號不會改變。

如果您確實需要更換exe,我相信訣竅是將其複製到一個臨時文件夾並從那裏重新運行,以便它可以替換原來的文件夾。您還可以查看更新框架,如Esky,這些框架旨在爲您處理這些細節。我沒有用過,所以我不知道它的工作效果如何。

+1

做事的標準方式是實際改變exe的名字。 – Schilcote 2014-11-06 03:08:21

相關問題