How do I get InstallShield to apply an update (replace version 6.0 with 6.1)? - visual-studio-2013

I have upgraded a shipping Windows Desktop application from version 6.0.15.0 to version 6.1.0.0. I am using the Limited Edition of InstallShield, with Visual Studio 2013, for the installation program. Upon running the installation program on a PC that has version 6.0.15.0 installed, the installation program says "Another Version of this product is already installed"
I set the Product Version to "6.1.0.0." in the upgraded version. I did not change the product code or the upgrade code GUIDs (from version 6.0), because the documentations says not to change them. The documentation says,
"Because the product code uniquely identifies your product, changing the code after distributing a release of your product is not recommended."
"The upgrade code, stored in the UpgradeCode property, should remain the same for all versions of a product."
What must be changed in the InstallShield Visual Studio project to enable it to replace 6.0 with 6.1, without a need to uninstall the previous version (6.0) of the program?

There are a couple ways to do do this.
Assuming you want a major upgrade ( deploy everything again), you just need to go to the upgrades and right click, add major upgrade.
Once you have the major upgrade, you can choose any previous version.

Related

How to upgrade latest version of my application without uninstall the old version manually?

I have my project in visual studio and i am using installshield as my windows installer. When I am installing new updated version of my application it will shows
Another version of this product is automatically installed like this...
How can I install new version by overwriting my old version?
Is there any way to configure in installshield or give me any other way
?
The error that you're getting is because the ProductCode has not been changed. This code is what makes your product/installer unique. Generally to author the upgrade you'll need to change this code and make sure the UpgradeCode is the same so that it recognizes what is already installed.
Authoring upgrades is a much wider topic and far too much information then can be covered here. I would suggest this page for learning about Windows installer upgrading.
Every upgraded version of install should have a different ProductCode. UpgradeCode is what tells the install package that this product has been installed. If ProductCode is also the same, install assumes you are installing the same product again. ProductCode needs to be different for each of the updated packages.
Under The Upgrade Paths, create a new path. Leave the min version blank (unless you need it), include min version yes, Max version should be set to the version You are installing now. Include max version to yes.
Each time you are installing an update, Increase the Product version(If u want to change) in the General Information section. Click on a new Product Code in the General Information Section Do not change the upgrade code.
Go back to the upgrade path, and set the Max version to the same version you are deploying now.
And make sure the Upgrade code in the "General Information" and "Upgrade path" are same.
This process uninstalls previous version, and installs the latest. No duplicates in add/remove programs.
If any doubt on this, comment your question...

Forceful upgrade with InstallShield 2013 LE

I have a WPF application which I develop. Its Setup is InstallShield 2013 LE project.
A clean install is fine. However, when I REBUILD my setup and run it again, it shows error "Another version of this product is already installed".
What I want is when I run Setup again, installation is FORCED with no regard to what version (might be) already installed.
P.S. Upgrade paths were suggested, but don't seem to affect the setup behavior. The setup version isn't changed between rebuilds, it's all the way 1.0.0, the same product and upgrade code.
The whole idea is to reinstall and reinstall, until development is done, just like in continous integration.
The solution is to run
msiexec /fva Mixed.Studio.msi
prior to running actual setup of the product. The code above runs smoothly with no regard to is the product installed or not.
The code forcefully replaces stored MSI with the new one, which takes away "Another version..." message. More than that, even if the user cancels setup, it still can later do "Restore" from Control Panel, and by doing that new version will effectively be installed.

MSI to show uninstalling of old project

I have an Installer project for my application in Visual studio 2010. I was successfully able to make it uninstall the older version of the application before installing the new one by
1. Setting RemovePreviousVersion to false
2. Setting DetectNewInstaller to true
3. Incrementing the project version
4. Creating new product code
Now when I double click my application for installation, I want the the setup wizard to also show that the currently installed application is getting uninstalled before showing the progress bar for fresh installation. How can I do this?
That might be a typo, but you need RemovePreviousVersions=True for the previous version to be uninstalled, as the actual name implies!
Otherwise, this is just the way VS (and most other tools) behave because Windows Installer's upgrades are like that, embedded in the new install. That progress bar behavior includes the uninstall of the old product, not just the fresh install, and the uninstall occurs after the new product has been installed. It's all one transaction.
With another tool you could build your own dialog that says there's an upgrade going on based on the detection of the older product, but generally speaking that's quite rare. Customers typically know what they have installed, and they are well aware that they are about to install an upgrade, that seems to be the assumption behind the default behavior.

Visual Studio Deploy Solution Version Number

Are there any hacks around the normal (and infuriating) Visual Studio Deploy Solution numbering system?
I have many assemblies I'm deploying with a Major.Minor.Build.Revision scheme for assembly versions. When I set the version for the setup.exe/Installer.exe, I can only do Major.Minor.Build. I'm not allow that fourth section for revision. This causes an issue because I key build numbers off date. So if my build is 906 for 09/06/11, I can only install (not uninstall and install, just install) once a day as it will see a previous version with the same version number and say a previous version is blocking install.
Besides using InstallShield (can't use this due to client requirements), are there any hacks to get the normal deploy solution to accept four part versions?
Windows Installer ignores the fourth Product Version field. So as long as you are using MSI packages, there's not much you can do. The old build needs to be manually uninstalled before installing a new build.

How Do I ensure that my MSI project is built into a package that is compatible with a specific msiexec version?

I have a windows installer (MSI) project. I want to ensure that when i build it , it will be compatible with msiexec version 4.5.
Normally, compatibility is a problem with a lower verions. Windows Installer 4.5 is the latest version of windows installer and I would expect it to be backward compatible. So, most likely things that you are using will be supported.
What you should worry about is compatibility with older versions of Windows Installer. Most IDEs for creating installers would let you know if you are using something that is available only after some version of Windows Installer onwards.
If your IDE does not provide this feature then you should be aware of what all you are using in your MSI and make sure thats its available in the Windows Installer version you intend to you target with your installer.
That depends on the tool you use to build the MSI, you should be able to specify the required installer version there.
For example, WIX, which I frequently use has a "InstallerVersion" attribute at its "Package" XML Element. There I can specify which Windows Installer Version is required.
(Currently I do not require Installer 4.5 as it isn't deployed everywhere yet and I don't want to require customers to install the new installer on XP.)
Update:
Re-reading your question I get the impression that you use a Visual Studio Installer project. I believe you can't configure the Windows Installer Version there, but it defaults to Windows Installer 3.whatever (I'm not sure about the specific minor version). Setups created with that are compatible with Windows XP in any way.
I don't believe you WANT to require a newer version of Windows Installer when you use a Visual Studio setup project, as the setup project is very limited in what it can do. So to require a newer version of the installer you probably have a specific feature in mind (for example elevation on Vista). To use that feature you'd need a better tool to build installers anyways (like WIX, or Installshield or Wise or ...)

Resources