Wix 如何使用相同的产品id在已安装的msi上更新Windows installer软件包
我已经创建了一个wix安装程序项目,它运行良好。它可以轻松地在系统上安装我的应用程序。每当任何文件或服务发生任何更改时,我都会从控制台卸载msi,并在系统上安装新的msi 但每当我安装新的msi时,应用程序的所有设置都会在新安装后更改,这听起来不太好。为了解决这个问题,我在Product.wxs文件中使用了升级代码。但当我在构建后安装新msi时,却显示出给定错误:Wix 如何使用相同的产品id在已安装的msi上更新Windows installer软件包,wix,windows-installer,Wix,Windows Installer,我已经创建了一个wix安装程序项目,它运行良好。它可以轻松地在系统上安装我的应用程序。每当任何文件或服务发生任何更改时,我都会从控制台卸载msi,并在系统上安装新的msi 但每当我安装新的msi时,应用程序的所有设置都会在新安装后更改,这听起来不太好。为了解决这个问题,我在Product.wxs文件中使用了升级代码。但当我在构建后安装新msi时,却显示出给定错误: Another version of this product is already installed. Installatio
Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel
因此,每当文件和产品id发生任何更改时,我都想更新windows应用程序包。我只想更新已安装的msi,不想删除它。您不能使用相同的产品id进行升级,您需要更改它。最好的方法是设置ProductId=“*”,这将为每个构建更改它。您还需要增加版本号,最好使用主exe程序集版本号。有关更多信息,请参阅。您不能使用相同的ProductId进行升级,您需要更改它。最好的方法是设置ProductId=“*”,这将为每个构建更改它。您还需要增加版本号,最好使用主exe程序集版本号。有关更多信息,请参阅。您可以使用相同的
ProductCode
更新已安装的MSI。基本上,您可以增加ProductVersion
,重新构建MSI(使用新的PackageCode
),并使用命令行执行一次较小的更新,例如:
msiexec /i <path to new msi> REINSTALL=ALL REINSTALLMODE=vomus.
msiexec/i重新安装=所有重新安装模式=vomus。
以我的经验,这不是常用的,因为如果你要重建MSI,你也可以升级一个主要的升级
如果您只想更新一些文件,而您还没有准备好发布完整的MSI文件,那么这就是补丁的用途。如上所述重新构建MSI,然后构建修补程序-修补程序是两个MSI文件之间的增量,请参阅MsiMsp.exe的文档。您可以使用相同的
ProductCode
更新已安装的MSI。基本上,您可以增加ProductVersion
,重新构建MSI(使用新的PackageCode
),并使用命令行执行一次较小的更新,例如:
msiexec /i <path to new msi> REINSTALL=ALL REINSTALLMODE=vomus.
msiexec/i重新安装=所有重新安装模式=vomus。
以我的经验,这不是常用的,因为如果你要重建MSI,你也可以升级一个主要的升级
如果您只想更新一些文件,而您还没有准备好发布完整的MSI文件,那么这就是补丁的用途。如上所述重新构建MSI,然后构建修补程序-修补程序是两个MSI文件之间的增量,请参阅MsiMsp.exe的文档。我可以使用修补程序进行升级吗。但我不知道如何使用补丁。我见过很多例子,但没有得到那么多。请给我一个使用补丁的合适解决方案。我自己没有使用过补丁,所以我不能发表评论,对不起。我可以用补丁升级吗。但我不知道如何使用补丁。我见过很多例子,但没有得到那么多。请给我一个使用补丁的合适解决方案。我自己没有使用过补丁,所以我不能发表评论,对不起。