Video Screencast Help

Execute Program From Path Error dotNetFx40_Client_x86_x64.exe

Created: 10 Jul 2012 | 5 comments

I am using Wise Installation Express

I have created a .wsi that uses 'Execute Program From Path' to run the .NET Framework 4.0 Client Profile install (dotNetFx40_Client_x86_x64.exe)

It works fine when I run the wise msi on Windows XP.  However, if I try to install on Windows 7, Vista, or Server 2008, the dotNetFx40_Client_x86_x64.exe begins to execute for a while, and then quits with an 'Access is Denied' error.

In the log file for the dotNetFx40_Client_x86_x64.exe install the critical lines are:

Action: Performing Action on Exe at C:\5613016708eb22e1c2e27230363a61\Windows6.1-KB958488-v6001-x86.msu...

[7/10/2012, 13:43:40]Launching CreateProcess with command line = wusa.exe "C:\5613016708eb22e1c2e27230363a61\Windows6.1-KB958488-v6001-x86.msu" /quiet /norestart
[7/10/2012, 13:43:40]Exe (C:\5613016708eb22e1c2e27230363a61\Windows6.1-KB958488-v6001-x86.msu) failed with 0x5 - Access is denied. .
[7/10/2012, 13:43:40]PerformOperation on exe returned exit code 5 (translates to HRESULT = 0x5)
 Is there anything I can change in the .wsi or Windows 7 security to make it run successfully as it does in XP?

Comments 5 CommentsJump to latest comment

piyushnasa's picture

The best way to do it either in XP or Windows 7 is to install .Net outside your package.

You can make this a pre-install dependency of your package.

Install .Net first in silent mode as per options above and then install your package. Disable the Action which is installing this in your .WSI

Piyush Nasa Altiris Certified Professional (ACP)

VBScab's picture

...UAC jumping in?

Don't know why 'x' happened? Want to know why 'y' happened? Use ProcMon and it will tell you.
Think about using before posting.

EdT's picture

Are you running your CA in the UI or Execute sequence?

Are you running in system or user context?

Have you tried with UAC turned off?

It is also considered bad practice to install an MSI based application from within the Execute sequence of another MSI based application, even if you use the specific custom actions for installing nested MSIs. Even Microsoft no longer recommend this course of action.

Use the option to compile to EXE and specify the .NET install as a pre-requisite.

If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.

jallenmunisoft's picture

Here are the steps I use to reproduce the issue:

1. Run Wise Installation Express
2. Create a new installation file using the Windows Application template
3. Go to Files in Feature Details
4. Create a new folder on the Destination Computer under Program Files
5. Add a text file to the destination folder
6. Go to Build Options in Release Definition
7. Select Single-file .EXE
8. go to MSI Script, User Interface
9. After Display Dialog Progress_Dialog and before ExecuteAction, add the following actions: Set Property to dotNetFx40_Client_x86_x64.exe and Execute Program From Path using the property
10. Save as Setup.wsi and Compile
11. Copy the Setup.exe and dotNetFx40_Client_x86_x64.exe files to a Windows 7 computer
12. Ensure User Account Control is turned off
13. Run the Setup.exe as Administrator
14. The .NET Framework installation will fail with an 'Access Denied' error
15. The same Setup.exe will install successfully on Windows XP



EdT's picture

Can you run the DotNet 4 install manually from the same location?

Is this Win 7 32 bit or Win 7 64 bit?

If you are compiling your MSI to an EXE, you need to bear in mind that the wisescript wrapper that forms the EXE is a 32 bit program and therefore there may be issues if you are trying to install a 64 bit program this way.

If you are calling the dot net install from the UI sequence of your MSI, then just try installing the MSI as compiled without going to an EXE.

If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.