1
votes

I created an installer for a WCF/Silverlight application. It's all working fine until the user changes the installation path to C:\Program Files. All the other paths work fine.

failed to set security info for object: C:\Program Files (x86)\

It's on Windows 2008 Server R2. Even though the user selects C:\Program Files\ the log shows C:\Program Files (x86)\

Last few lines from the installation log:

MSI (s) (90:08) [13:22:10:334]: LocalSQLConfigDataSource returned 1 in remote context. MSI (s) (90:08) [13:22:10:344]: Executing op: ActionStart(Name=ExecSecureObjects,,) Action 13:22:10: ExecSecureObjects. MSI (s) (90:08) [13:22:10:353]: Executing op: CustomActionSchedule(Action=ExecSecureObjects,ActionType=3073,Source=BinaryData,Target=ExecSecureObjects,CustomActionData=C:\Program Files (x86)\CreateFolderEveryone269221888) MSI (s) (90:B0) [13:22:10:358]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIF980.tmp, Entrypoint: ExecSecureObjects ExecSecureObjects: Entering ExecSecureObjects in C:\Windows\Installer\MSIF980.tmp, version 3.6.3005.0 ExecSecureObjects: Securing Object: C:\Program Files (x86)\ Type: CreateFolder User: Everyone ExecSecureObjects: Error 0x80070005: failed to set security info for object: C:\Program Files (x86)\

1

1 Answers

1
votes

32bit installers can't write to the 64bit ProgramFiles. That requires a 64bit MSI.

Why would you change the permissions of the Program Files folder? That's terribly invasive to the operating system.