Home All Groups Group Topic Archive Search About

Different .NET app install behavior between modal and silent insta

Author
26 Jan 2006 4:48 AM
mesterak
I have two releases of a .NET app that has a setup/deployment project that
generates the installation MSI file.  In the second release of the app, I set
RemovePreviousVersions to True and DetectNewerInstalledVersion to False in
the deployment project properties.

Scenario 1:
If I install v1.0.0 of my app (answer the dialogs) and then install v1.1.0
the same way, v1.0.0 is successfull uninstalled.  This is good.

Scenario 2:
If I install v1.0.0 (answer the dialogs) and then install v1.1.0 silently
via msiexec (/qn or /quiet parameter options), then both apps will co-exist
on the system; v1.1.0 does not uninstall v1.0.0.  This is very bad!

Scenario 3:
If I install both v1.0.0 and v1.1.0 silently with msiexec, v1.1.0 is
successfully uninstalled by v1.1.0.  This is good.

Why does scenario 2 fail?

Platform is WinXP w/Windows Installer. V 3.01.4000.1823 and VS 2k3

-Matt

Author
2 Feb 2006 5:56 AM
mesterak
I'm answering my own question here....

The fix for this problem is to use the ALLUSERS=1 parameter on the
command-line when performing the silent install as follows:

msiexec.exe /qn/ i myapp.msi ALLUSERS=1

Even if FolderForm_AllUsers property is set to "ALL" instead of the default
"ME" value in your MSI file, the ALLUSERS parameter must be set to 1 when
performing a silent install.  Apparently, when installing an MSI by answering
the dialogs, ALLUSERS gets set appropropriately when you select the
"Everyone" (per machine install.)  However, the FolderForm_AllUsers property
has no affect during silent install, which is why you have to set ALLUSERS
property as a parameter to your silent install.  Otherwise, your silent
install will install your app as a per user install and caanot remove the
previous product as in scenario 2 in my problem example.

-Matt

Show quote
"mesterak" wrote:

> I have two releases of a .NET app that has a setup/deployment project that
> generates the installation MSI file.  In the second release of the app, I set
> RemovePreviousVersions to True and DetectNewerInstalledVersion to False in
> the deployment project properties.
>
> Scenario 1:
> If I install v1.0.0 of my app (answer the dialogs) and then install v1.1.0
> the same way, v1.0.0 is successfull uninstalled.  This is good.
>
> Scenario 2:
> If I install v1.0.0 (answer the dialogs) and then install v1.1.0 silently
> via msiexec (/qn or /quiet parameter options), then both apps will co-exist
> on the system; v1.1.0 does not uninstall v1.0.0.  This is very bad!
>
> Scenario 3:
> If I install both v1.0.0 and v1.1.0 silently with msiexec, v1.1.0 is
> successfully uninstalled by v1.1.0.  This is good.
>
> Why does scenario 2 fail?
>
> Platform is WinXP w/Windows Installer. V 3.01.4000.1823 and VS 2k3
>
> -Matt

AddThis Social Bookmark Button