如何使InstallShield LE自动卸载现有安装? [英] How to get InstallShield LE to uninstall the existing installation automatically?

查看:133
本文介绍了如何使InstallShield LE自动卸载现有安装?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这可能吗?

我能看到的搜索内容基本上是,我需要使用第三方工具(例如Orca)从现有的MSI中获取GUID,并使用这些工具配置InstallShield来卸载现有版本.我已经尝试了其中的一两个指令集,但到目前为止没有任何效果.可能是因为我做错了事,但看来我正在经历很多麻烦,要做一些我认为应该相对简单的事情.这个问题以前没有解决过吗?

All I can see searching around is basically that I need to use 3rd party tools (e.g. Orca) to get GUIDs from my existing MSIs and configure InstallShield with these to uninstall the existing version. I've tried one or two of these sets of instructions but nothing has worked so far. Probably because I'm doing something wrong, but it seems I'm jumping through a lot of hoops to do something that I would think should be relatively straight-forward. Hasn't this problem been solved before?

google中的最高结果指向

The top result in google points to this answer:

  • 使用Orca打开旧的MSI,然后从属性表中获取其UpgradeCode
  • 在您的InstallShield LE项目中,转到解决方案资源管理器中的常规信息"
  • 确保将升级代码"字段设置为您的旧MSI升级代码

这是否意味着每次要部署新版本时,都必须打开Orca的旧MSI并获取其UpgradeCode"?

Does this mean I have to open my 'old MSI with Orca and get its UpgradeCode' every time I want to deploy a new version?

这听起来有点黑,这肯定是我每次部署新版本时都不需要做的事情.有没有办法使它自动化?此功能是否可以在InstallShield的更高级版本中使用(请注意,我在LE上-如有必要,我将进行升级)

This sounds a little hackish, and is certainly something I don't want to have to do every time I deploy a new version. Is there a way to automate this? Is this functionality available in more advanced versions of InstallShield (bare in mind I'm on LE - I'll upgrade if necessary)

推荐答案

InstallShield LE与之前的安装项目一样,允许安装新版本的产品,该产品将替换先前安装的版本.从技术上讲,从旧产品的卸载还是就地升级似乎都不重要.

InstallShield LE, like the Setup Project before it, allows for installation of a new version of product which will replace the previously installed version. As to whether it is technically an uninstall of the old product, or an in-place upgrade seems of little importance.

关键在于产品代码升级代码之间的区别:

The key is in the difference between Product Code and Upgrade Code:

  • 产品代码::由于此代码可以唯一标识您的产品,因此,建议您在发布发行版后不更改产品代码.

  • Product Code: Since this code uniquely identifies your product, changing the product code after you have already distributed your release is not recommended.

升级代码:存储在UpgradeCode属性中的升级代码对于产品的所有版本均应保持不变.

Upgrade Code: The upgrade code, stored in the UpgradeCode property, should remain the same for all versions of a product.

(本文直接来自InstallShield LE帮助库.)

(This text is directly from the InstallShield LE help library.)

如何使用这些代码部署产品和同一产品的版本更新并不是一件很简单的事情.

It isn't exactly straightforward how to use these codes to deploy products and version updates of the same product.

帮助文本使您听起来好像永远不要更改产品代码.不是这种情况.应该写得更清楚一些:由于此代码可以唯一地标识您的产品版本,因此,建议您在发布特定版本后,不建议更改产品代码." ...或类似的东西.

The help text makes it sound like you should never change the product code. This is not the case. It should probably be written more clearly to say "Since this code uniquely identifies your product version, changing the product code after you have already distributed a particular release is not recommended." ... or something like that.

基本上,您 应该 在创建要发布的新版本时更改产品代码. 仅保留升级代码!要更改产品代码,请单击代码右侧的{..}按钮. InstallShield LE将生成一个新代码.

Basically you should change the Product Code when creating a new version to release. Leave the Upgrade Code alone! To change the Product Code, click the {..} button to the right of the code. InstallShield LE will generate a new code.

我的标准程序是更改项目的版本,生成新的产品代码并构建InstallShield安装项目.

My standard procedure is to change the versions for my projects, generate a new product code, and build the InstallShield setup project.

在已安装较早版本的计算机上安装产品时,安装项目将对其进行更新,并仅在目标计算机上保留该程序的一个版本(最新版本).

When installing the product on a machine with an earlier version already installed, the setup project will update it and leave only one version (the latest) of the program installed on the target machine.

这篇关于如何使InstallShield LE自动卸载现有安装?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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