PDA

View Full Version : Technical Info: Windows 8 Program Compatibility Assistant (PCA)



NewsArchive
01-27-2012, 08:43 AM
The Program Compatibility Assistant (PCA) is a feature in Windows 8, Windows
7, Windows Server 2008 and Windows Vista which has been designed to detect
compatibility issues in older ("legacy") programs. PCA will play a
significant role in application compatibility in Windows 8.

The service displays a compatibility warning window if compatibility issues
have been detected during installation or program starts. The user usually
does have a choice to continue but programs are sometimes blocked from
running as well. If that happens, users have the option to check online for
possible solutions.

Most Windows 8 users will probably notice the compatibility messages after
installing programs and running portable applications. On the new Windows 8
operating system, the attached PCA dialog may appear at the end of an
installation if the setup.exe is *NOT* Windows 8 aware.

How the program behaves after that depends on the option the user selects.
If they pick "Reinstall using recommended settings" the system will remember
(via registry settings) that they picked that option and will begin to "lie"
about the version of Windows the product is being run under when the product
asks for the OS version in the future. Windows 8 will now report that it is
it is "Windows 7", for example. If they pick "This program installed
correctly" the system will remember they responded to the PCA and not "lie"
about the OS. If they pick "Cancel" nothing about the program is remembered
(and the PCA pop-up will continue to appear each time it is launched).

To avoid installer PCA mitigation under Windows 8, you need a Windows 8
aware installation system.

The good news is that the new SetupBuilder 7.6 already lets you compile
Windows 8 "Developer Preview" aware applications to ensure that software
gets installed and uninstalled properly.

--
Friedrich Linder
www.lindersoft.com
+1.954.252.3910

NewsArchive
01-28-2012, 03:10 AM
Hi Friedrich,

> The good news is that the new SetupBuilder 7.6 already lets you compile
> Windows 8 "Developer Preview" aware applications to ensure that software
> gets installed and uninstalled properly.

So what do we need to do in the setup script to make the install Win8
compatible, or is it so by default?

Best regards,
--
Arnór Baldvinsson - Icetips Alta LLC
Port Angeles, Washington
www.icetips.com - www.buildautomator.com - www.altawebworks.com
Icetips product subscriptions at http://www.icetips.com/subscribe.php

NewsArchive
01-28-2012, 03:10 AM
Hi Arnór,

> So what do we need to do in the setup script to make the install Win8
> compatible, or is it so by default?

SetupBuilder 7.6 automatically compiles applications that are Windows 8,
Windows 7 and Windows Vista aware and Windows 8 "Developer Preview"
compliant. And of course, the compiled setups are fully backward compatible
(including Windows 95 <g>).

When Windows 8 goes into public beta, we'll make SetupBuilder 7.7 available
to provide enhanced Windows 8 support (e.g. in the "Target Operation System"
filter, in the "#embed UAC manifest..." compiler directive, .NET 4.5
detection, etc.).

Friedrich

NewsArchive
01-28-2012, 03:12 AM
Just how do you keep up with all this stuff? Never mind, Chuck Norris has nothing
on you <g>.

"Friedrich Linder" wrote in message

When Windows 8 goes into public beta, we'll make SetupBuilder 7.7 available
to provide enhanced Windows 8 support (e.g. in the "Target Operation System"
filter, in the "#embed UAC manifest..." compiler directive, .NET 4.5
detection, etc.).


Russell B. Eggen
www.radfusion.com

NewsArchive
01-28-2012, 03:13 AM
Is this automatic or is there a setting for this?

"Friedrich Linder" wrote in message
news:A921.1327678798.297@discuss.softvelocity.com. ..

The good news is that the new SetupBuilder 7.6 already lets you compile
Windows 8 "Developer Preview" aware applications to ensure that software
gets installed and uninstalled properly.

--
Friedrich Linder
www.lindersoft.com
+1.954.252.3910


Russell B. Eggen
www.radfusion.com

NewsArchive
01-28-2012, 03:14 AM
>
> Is this automatic or is there a setting for this?
>

Yes, this is automatic!

Friedrich

NewsArchive
01-28-2012, 03:14 AM
Cool! Another worry scratched off the list. Cheers!

Russell B. Eggen
www.radfusion.com

NewsArchive
01-28-2012, 03:15 AM
Thanks, Friedrich.

Jeff Slarve
www.jssoftware.com
www.twitter.com/jslarve
This post may self-destruct at any moment

NewsArchive
01-29-2012, 07:58 AM
I get that now with Windows7, I can now look forward to it with Windows 8 ?

--
Dan Scott
C55 - C6.3 Legacy
Garage Partner Pro / Invoice Partner
www.garagepartner.com
Plan A is always more effective when the device you are working on
understands that Plan B involves a larger hammer

NewsArchive
01-29-2012, 07:58 AM
>
>I get that now with Windows7, I can now look forward to it with Windows 8 ?
>

I fear I don't understand. What do you get now with Windows 7?

Regards,

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

SetupBuilder is Windows installation -- "point. click. ship"

-- Official Comodo Code Signing and SSL Certificate Partner

NewsArchive
01-29-2012, 07:59 AM
Dan,

>>I get that now with Windows7, I can now look forward to it with Windows 8
>>?
>>
>
> I fear I don't understand. What do you get now with Windows 7?

I re-read your post. As I understand it, your own application gets the PCA
mitigation with Windows 7, correct? Yes, if you get it now (means your app
is detected as legacy app) with Windows 7 then you'll also get it with
Windows 8.

But the solution is very simple.

BTW, if you use SetupBuilder 7.x then your install will never get a PCA
mitigation on Vista nor Windows 7 because it is already
Vista/Win7-compliant. And the new SetupBuilder 7.6 is already Windows 8
aware so no PCA mitigation on Win8 in the future.

The following is a very brief description of how to make an application
"UAC-aware" and Win7-compliant:

-- Standard Application:

1. Embed an UAC manifest into your main application (.EXE). A manifest
basically tells Windows how aware the program is about the recent Windows
versions (and disables "Virtualization" and unwanted legacy Installer
Detection Technology). You should include a manifest for Windows 7 because
it's fully backward compatible with all previous Windows versions.

2. Request "asInvoker" execution level privileges through the manifest for
your application.

3. Code-sign all your application files (e.g. .EXE, .DLL). Use a
certificate signed by a CA, e.g. Comodo, VeriSign, etc.

4. Your application should not depend on any administrative APIs.

5. Do not write per-user information or user-writable information to the
Program Files folder tree.

6. Do not write to any other protected Windows area (e.g. the OS drive root
folder, the "Windows" folder tree, etc.).

7. Do not write to the HKEY_LOCAL_MACHINE or any other protected registry
key.


-- Standard Installation:

1. Use an UAC-aware installation system. By default, installations run
elevated.

2. Install applications per-machine (all users) and store per-user data in
different locations.

3. Do not install Quick Launch shortcuts.

4. Never write to per-user locations from the elevated running installer.
That means, never write to the HKEY_CURRENT_USER registry key or to per-user
file locations.

5. Launch applications non-elevated at the end of the installation process.

6. Code-sign the installer. Use a certificate signed by a CA, e.g. Comodo,
VeriSign, etc.

Note: if you have to install "per-user" data, install it to a common
location and as a "first run" action of your main application, copy the data
from the common location into a per-user location.

Respect the recommended (default) locations for applications and data files,
but provide users with an option to select another installation location for
both. A true "Mixed User Application" should work elevated and
non-elevated.

That's it :-) If you follow the above steps then there will not be any PCA
mitigation in Vista nor in Windows 7.

BTW, when Windows 8 goes into public beta, we'll make SetupBuilder 7.7
available to provide enhanced Windows 8 support. You can then make your own
application Windows 8-aware.

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

SetupBuilder is Windows installation -- "point. click. ship"

-- Official Comodo Code Signing and SSL Certificate Partner

NewsArchive
02-01-2012, 01:47 AM
Now Friedrich, can you fix the IPv4 to IPv6 transition to happen
automatically...please....<g>

Skip

NewsArchive
02-01-2012, 01:48 AM
Yeah! he he

Jeff Slarve
www.jssoftware.com
www.twitter.com/jslarve
This post may self-destruct at any moment

NewsArchive
02-01-2012, 01:48 AM
> Now Friedrich, can you fix the IPv4 to IPv6 transition to happen
> automatically...please....<g>

<BG> ;-)

Friedrich