Installshield 2010 - On upgrade check its already upgraded to certain version - installshield-2010

I'm currently updating my installer (Basic MSI) for a program to v5.00.0000. I need InstallShield to check that if it's an upgrade, it must be on at least 4.00.0034.
So if it's not previously installed, it installs ok.
If it's on 4.00.0020, it must return a message to say please upgrade to v4.00.0034 first.
Thanks,
Ian.

Examine the ISPreventDowngrades action and the major upgrade item that finds newer versions, or read up on how to prevent downgrades. You can then copy this approach, tweaking it to instead find and error out on ones less than 4.0.34.

Related

CYGWIN WARNING: Couldn't comute FAST__CWD

Hi we are currently using Quickbuild for our Automation Jobs,apparently as we tried to deploy some changes we are unable to proceed due to this:
Does anyone know how to fix this? I have tried updating our git version to the latest, and I have also tried to install a cygwin latest version, none of this has solved our problem.
https://www.cygwin.com/faq.html#faq.using.fixing-find_fast_cwd-warnings
4.45.
How do I fix find_fast_cwd warnings?
Older Cygwin releases asked users to report problems to the mailing list with the message:
find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer. Please report
this problem to the public mailing list cygwin#cygwin.com
Recent Cygwin releases changed this to the message:
This typically occurs if you're using an older Cygwin version on a newer Windows.
Please update to the latest available Cygwin version from https://cygwin.com/.
If the problem persists, please see https://cygwin.com/problems.html.
This is not serious, just a warning that Cygwin may not always be able to exactly emulate all aspects of Unix current directory handling under your Windows release.
Unfortunately some projects and products still distribute older Cygwin releases which may not fully support newer Windows releases, instead of installing the current release from the Cygwin project. They also may not provide any obvious way to keep the Cygwin packages their application uses up to date with fixes for security issues and upgrades.
The solution is simply downloading and running the Cygwin Setup program, following the instructions in the Internet Setup section of ``Setting Up Cygwin'' in the Cygwin User's Guide.
Please exit from all applications before running the Cygwin Setup program. When running Setup, you should not change most of the values presented, just select the Next button in most cases, as you already have a Cygwin release installed, and only want to upgrade your current installation. You should make your own selection if the internet connection to your system requires a proxy; and you must always pick an up to date Cygwin download (mirror) site, preferably the site nearest to your system for faster downloads, as shown, with more details to help you choose, on the Mirror Sites web page.
The Cygwin Setup program will download and apply upgrades to all packages required for Cygwin itself and installed applications. Any problems with applying updates, or the application after updates, should be reported to the project or product supplier for remedial action.
As Cygwin is a volunteer project, unable to provide support for older releases installed by projects or products, it would be helpful to let other users know what project or product you installed, in a quick email.

Major upgrade vs Minor upgrade version Numbers

We have an application, in which we have series of releases. The current version of the application in production was V2.1
Now we have a set of new UI Screens to be added and related changes to the application. We are planning to release these changes as V3.0.
Do we need to go with Major Upgrade or Minor Upgrade? If we go with Major Upgrade, do we need to reinstall the application? or change the version to 2.2 and go with Minor Upgrade?
Please suggest me some best way to go about with these installers.
Note: We are using Install Shield Premium for building the installer.
If the only changes you are making are to the UI of your installation wizard, there is no fundamental reason to prefer either a minor or a major upgrade over the other. Typically the choice is driven by the changes you are making to the application itself, or the files that comprise it.
A Minor Upgrade will support first-time installations, as well as provide what should be a shorter update for the upgrade experience. A Major Upgrade will uninstall what's currently there before installing the new version. Either can be done with either sets of version numbers - the difference depends primarily on whether you change your ProductCode.
See Patching and Upgrades for details. Some people prefer creating Major Upgrades because they are easier to reason about.

Identifying the product language for already installed application

I have multilingual installation setup program, where user can select 5 different language. Consider I have installed application in German language. whenever I am uninstall the application or update the previous setup it is launching in German. I would like to know how setup will detect the older installation product language.
In my case I have created a upgrade only installation where it will detect the previous version of the installation and do the major upgrade. In the major upgrade I don't want to display the language dialog. The update should happen in the earlier installed lanugage.
Does installscript has any API to detect the earlier installed applications product language.?
I belive there should be some way to do like that as uninstallation does, Can any body give me some suggestion.
Thanks in advance.
For a pure InstallScript installation, this is tracked in the uninstall key's command line. Look for the /L parameter.
For Windows Installer-based installations, this is remembered automatically by Windows Installer tracking which transforms are applied at initial installation. This includes the language transform.

How to make InstallShield uninstall previous versions?

I've followed the instructions outlined here, but it doesn't work exactly as I need.:
How to get InstallShield LE to uninstall the existing installation automatically? (apparently this has worked for other people, so it's worth having a look. If it does the trick, be sure upvote #JYelton's answer)
The result of these instructions are that I can install the application without having to uninstall, but now there are 2 separate instances of the application in my Add or Remove Programs window. It doesn't actually uninstall the previous version, it just installs the new version application along-side the previous one.
How can I make InstallShield uninstall previous versions of the application?
Configure the new project to remove the old one by using the Upgrade Paths view: Add a New Upgrade Path, and browse to your previous .msi file to ensure it uses the right Upgrade Code. Then tweak the settings that appear, if necessary; typically they should be correct.

Msiexec: automatic rollback to previous version on installation failure

When installing a .MSI file using msiexec in silent mode, is it possible to automate it such that on installation failure it rollbacks to the previous version? Assuming that on installation an older application version is already installed.
Yes, restoring the old application version via rollback upon an installation failure is actually a built-in feature of Windows Installer, but you need to configure things correctly to get it to work as you require.
Windows Installer rollback will work as you request if you use: 1) a minor upgrade or 2) a properly sequenced major upgrade that uninstalls the older versions after successfully updating all files. If the major upgrade is set to uninstall the old version before installing the new, the rollback is not available since the uninstall is already over, and the new installer will hence leave nothing installed if it fails and rolls back.
Important: For minor upgrades and for late uninstall of old version in major upgrades to work correctly, all MSI component rules must be followed 100% accurately.
When thinking about a major upgrade that uninstalls the old version after updating, you can view it as a patching operation without having the update packaged as a patch. Windows Installer will actually run a diff on the old and new version and then implement only the required changes, leaving the rest of the application untouched. Depending on the application structure and number of files, this can be significantly faster to install as well.
Late-sequenced major upgrades are also a way to prevent configuration files from being reverted to their original installation status during upgrades. This is a classic issue where config files are changed after installation, uninstalled during a major upgrade and then being reinstalled giving the impression that they are reverted, when they are actually freshly reinstalled.
I have written about Windows Installer Rollback before. Might be worth a read.
No, this is not possible. A major upgrade uninstalls the old version before installing your new one. So when the new install fails, the old version is already removed.
There is a possibility but it involves changing the upgrade sequence which is not always an easy thing to achieve. You should move the RemoveExistingProducts after InstallExecute action
http://msdn.microsoft.com/en-us/library/windows/desktop/aa371197(v=vs.85).aspx

Resources