gpt4 book ai didi

python - 卸载通过 cx_freeze bdist_msi 创建的先前安装的 msi

转载 作者:可可西里 更新时间:2023-11-01 13:50:51 24 4
gpt4 key购买 nike

我经常使用 cx_freeze将我的 python 源与所有依赖项打包,然后通过 distutils 创建一个 msi 安装包bdist_msi扩展名

唯一的问题发生在我尝试重新安装新创建的 msi Windows 安装程序而不卸载以前的版本时。卸载程序会记录所有以前卸载的软件版本,并删除注册表和卸载程序信息。

是否可以检测以前安装的软件版本并在不安装新版本的情况下自动将其卸载?

我知道 NSIS ,以及如何使用它的 python 绑定(bind)来创建安装程序,我提到的上述问题可以通过它轻松解决。不幸的是,此时此刻,除了 Python 提供的功能(即 distutils),我没有寻找任何东西。

最佳答案

在 cx_Freeze 中,bdist_msi 有一个选项 upgrade-codethe docs描述为:

define the upgrade code for the package that is created; this is used to force removal of any packages created with the same upgrade code prior to the installation of this one

要指定它,我认为您必须将它传递给 setup() 调用,如下所示:

options = {"bdist_msi": {"upgrade-code":"..."}}

(我总是忘记在选项名称中应该是 - 还是 _ 才能像这样使用它们,所以如果那是错误的,请尝试将其作为 upgrade_code )

Microsoft say升级代码应该是一个 GUID(随机生成的代码)。

关于python - 卸载通过 cx_freeze bdist_msi 创建的先前安装的 msi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13867247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com