我们有一个使用WIX安装程序的产品,只有我们的支持团队执行安装例程。 用于升级应用程序的唯一方法包含两个步骤:
旧版本方案的升级,修复或安装将永远不会用于此产品(这是不可能的,因为部署是由脚本执行的。)
如果我们不使用升级功能,是否有必要为所有新版本创建唯一的产品ID,或者是否可以保留相同的产品和升级ID?
答案 0 :(得分:9)
来自ProductCode property的文档:此ID必须因不同版本和语言而异。通常,您应该只在Id="*"
元素中设置Product
,因此它对您生成的每个安装程序包都是唯一的。
我想不出你为什么希望这个Id对于不同版本的安装程序保持不变的原因;这会混淆Windows安装程序,例如当您尝试安装较新的软件包而不卸载之前的软件包时,可能会收到修复对话框。
升级代码仅在您使用MajorUpgrade
时才有意义,但听起来您没有使用它。
修改:好的,因此您希望保持产品ID不变,以便使用msiexec /x {GUID}
轻松卸载。
另一种方法是让安装程序自己在某处记录产品代码GUID。例如。由creating an uninstall shortcut。或者您可以将产品Guid写入注册表中的固定位置,然后您可以编写一个脚本来读取该值以进行卸载。
答案 1 :(得分:1)
您的两步流程正是重大升级所做的。但是,您说您不支持升级。这对我没有意义。
可以通过脚本以静默方式执行正确创作的安装程序,以自动将任何先前版本的软件升级到当前版本。
答案 2 :(得分:-2)
我建议您保留相同的商品ID。更改同一产品的产品ID不是一个好习惯。保留相同的产品ID。在安装之前,请像现在一样使用脚本“msiexec / x GUID”卸载,然后再次安装安装程序。据我所知,产品应始终具有唯一的ID。