clint
Posts: 135
Joined: Fri Jun 19, 2009 9:46 am
Location: Germany

Not allowing installation to future Windows Versions

Hi,
A customer of ours just installed an outdated installation package of ours (created with AI) which was created in 2010, onto a Windows 2008 system.

The package was created allowing only up to NT Version 501/502 (XP and W2003).

We do not want to allow the installation to be executed on a future Windows NT version, except for service packs, until tested. If excluding service packs isn't possible, then not for any future Windows NT version until tested.

How can we accomplish? Is the only option to do it through a Custom Action, needing to change the Version limit each time, or directly editing the MSi LaunchConditions table each time?

Thank you,
clint
Dan
Posts: 4529
Joined: Wed Apr 24, 2013 3:51 pm

Re: Not allowing installation to future Windows Versions

Hi Clint,

In order to achieve that you can go in the Launch Conditions Page and specify conditions that must be fulfilled in order for your application to install.
In the System Launch Conditions Tab you can select the Supported Operating Systems.

Another approach is the following:
In the Custom Launch Conditions Tab you can define a condition like that:

Code: Select all

VersionNT <= 502
Also, you can condition the installation of your installation package based on the ServicePackLevel property.

Please let me know if that helped.

Best regards,
Dan
Dan Ghiorghita - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
clint
Posts: 135
Joined: Fri Jun 19, 2009 9:46 am
Location: Germany

Re: Not allowing installation to future Windows Versions

Hi Dan,

You wrote:
In order to achieve that you can go in the Launch Conditions Page and specify conditions that must be fulfilled in order for your application to install.
As I stated, this package was done as you suggested: Launch Conditions set for the OS.

But, the criteria for the launch condition placed by AI in the LaunchCondition table do not determine what OS to allow install on, but instead, which OS not not install on.

This would mean for instance, if the latest workstation Windows Version is Windows 8.1 x86, and that version is completely unchecked, then when a Service Pack for 8.1 x86 is released, the Installation will install on this system!

This defeats the purpose, if I do not what the product installed on Windows 8.1 x86 at all!

This is what the Condition turns out to be:
(Version9X Or VersionNT64 Or (VersionNT And ((VersionNT <> 603) Or ((VersionNT = 603) And (ServicePackLevel >= 1)) Or VersionNT64)))

AI puts in a condition which allows for 603 (Windows 8.1 x86) with at least 1 service pack, although there is no service pack for 8.1 available, and none listed in the AI OS list yet, and most of all, 603 (Windows 8.1 x86) is not checked at all!



The LaunchCondition listing says at the top "Supported Operating Systems".
Therefore, it should say "Unsupported Operating Systems" and then we check the ones not supported.

That would make more sense to me, though, the problem still exists.

The only way to solve that, is to have an additional check box for each Version, after the last service pack is listed, which says "Allow no future service packs", and also one for each main node (x64 and x86) which says "Allow no future Versions" and add the criteria for those to the LaunchCondition table:

(VersionNT <= 603) Or ((VersionNT = 603) And (ServicePackLevel < 1))

Thank you.
clint

Return to “Common Problems”