当新旧版本的产品代码相同时,有没有可能进行升级的方法? [英] Is there any possible way to perform upgrade when Product codes for old and new versions are same?

查看:24
本文介绍了当新旧版本的产品代码相同时,有没有可能进行升级的方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们在 WIX 中构建了两个安装程序,但产品代码必须保持不变.在从旧到新升级时,我收到一个错误,特定文件帐户已存在."

We have two installers build in WIX with the constraint that Product code has to remain same. On doing an upgarde from old to new, I get an error, "The specifile account already exists."

WIX 是否允许我在保持产品代码不变的情况下实现升级的任何解决方法.

Does WIX allow any workaround for me to achieve an upgrade while keeping my product code unchanged.

推荐答案

次要升级:那只是一个次要升级 - 与更常用的 重大升级.关于修补和升级的信息升级(一般情况下).

Minor Upgrade: That is just a minor upgrade - a different form of MSI update from the more commonly used major upgrade. Info about Patching & Upgrades (in general).

复杂的&有限:对于小升级有许多限制,使大多数人最终使用大升级.本质上,小升级可以添加新功能和组件,但不能重新组织功能组件树.但是等等,还有更多限制:

Complex & Limited: There are a number of restrictions for minor upgrades that make most people end up using major upgrades. Essentially a minor upgrade can add new features and components, but cannot reorganize the feature-component tree. But wait, there are many more restrictions:

  • Minor upgrades can not change the MSI file name, it must match the previously installed version. I always end up banging my head against this one having forgotten the restriction, hence this specific mention.
  • Some further limitations as capably explained by Flexera's help file: Major Upgrade vs. Minor Upgrade vs. Small Update (third column).
  • Aging, but good content from installsite.org on the same topic: Windows Installer Updates and Patches.
  • MSDN description of limitations: Changing the Product Code
  • Advanced Installer's Creating Patches list of limitations and restrictions (applies to minor upgrades in general as well as minor upgrades delivered as patches).

安装小升级:小升级可以作为常规 MSI 或补丁文件提供.用于安装常规 MSI 文件的标准命令行:

Installing Minor Upgrades: A minor upgrade can be delivered as a regular MSI or as a patch file. The standard command line used to install a regular MSI file:

msiexec.exe /i MySetup.msi REINSTALLMODE=vomus REINSTALL=ALL

也许看Flexera 帮助文件页面,了解有关安装次要升级的更多详细信息(一些 Flexera 特定的内容,但大部分是通用的).这就是上面命令行的来源.

Maybe see this Flexera help file page for some more details on installing minor upgrades (some Flexera-specific stuff, but mostly generic). That is where the above command line is from.

个人观点:让我以主观观察结束.我发现小升级对于实际使用来说很痛苦,我只成功地将它们用于热修复"(只更新几个文件而没有其他更改),并修复错误已安装产品的卸载序列导致它们无法成功卸载.在这些情况下,小升级变得如此简单,以至于它们可以可靠地工作.为了交付只进行小幅升级的真实产品,需要大量的关注、远见和纪律(更不用说一个耐心且有见地的产品经理,他会了解这些技术限制以及它们对实际产品部署的意义).

Personal Opinion: Let me end with a subjective observation. I find minor upgrades excruciating for real-world use, and I have only successfully used them for "hotfixing" (just update a couple of files with no other changes), and to fix errors in installed product's uninstall sequences which prevented them from successfully uninstalling. In these cases the minor upgrades became so simple that they worked reliably. In order to deliver a real-world product with only minor upgrades, a lot of care, foresight and discipline is needed (not to mention a patient and insightful product manager who will understand these technology limitations and what they mean for real product deployment).

综上所述,让我们不要低估 MSI 的巨大企业利益(不仅仅是升级问题和相关细节):

With all that said, let us not underestimate the huge, corporate benefits of MSI (beyond mere upgrading issues and related details):

这篇关于当新旧版本的产品代码相同时,有没有可能进行升级的方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆