2014-11-04 69 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

相关问题