MSI to show uninstalling of old project - visual-studio-2010

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.

Related

SQL Server Management Studio set-up exe does not launch

Attempting to launch the SQL Server Management Studio set-up exe leads to an icon briefly appearing in the taskbar, before disappearing without any further screen showing up. The task manager does not show any running instance for the installer either.
I have tried various versions of the SSMS installer executables posted on Microsoft's official documentation for SSMS, including version 18.8, 18.7.1, and 17.9.1.
Also tried updating the .NET framework, as suggested here (Why the SSMS-setup-ENU for version 17.8.1 isn't running?), but the latest version is already showed as having been installed.
I did a soft and hard reboot both, without success.
Confused as to how to proceed and install the software now. Any help would be appreciated.

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.

Prevent Windows registry key from removing when upgrading application to newer version

I have a registry key (in HKEY_LOCAL_MACHINE hive) which must be keeped from older version of the application to the newer, but removed when user completely uninstalls my application. I'm using Visual Studio 2010 setup and deployment project.
I know about increasing build version of the installation package, build version of assemblies and upgrading 'ProductCode'(but keeping 'UpgradeCode' the same). 'RemovePreviousVersion' is set to true. The problem is that when user installs the new version, registry key from previous version is removed (with important data in it) and recreated again. It seems that MSI uninstalls my application before installing the new version. I was tried to set 'RemovePreviousVersion' to false but in this case new version installed independently and both versions of the application appear on the same machine.
It seems to be very common scenario but I couldn't find how to keep registry keys between different versions. If you know how to make this modifying MSI package using Orca it is not a problem (as Visual Studio is very restricted in creating installation packages).
Thanks in advance.
A late scheduling of RemoveExistingProducts action will fix your problem.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa371197(v=vs.85).aspx

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.

Resources