cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Edward67
Level 3

SUPPORTDIR and suppor files

Hi,

I'm lost. Found a lot about SUPPORTDIR, but don't get it.

I'm having a basic MSI Project and added some files under Support Files, Language Independent.
When running the created setup, I see that a directory is created in the %TEMP% folder. The name of the created directory looks like some GUID. This directory holds some basic InstallShield items (few dll's, inf-files, setup.inx, etc.). But not the files I've added under Support Files.

Then I saw that also a directory c:\windows\System31\0 is created. Here I can see mine support files. After the setup ends, this directory is removed.

When I do in vbscrip a Session.Property("SUPPORTDIR"), this is empty.
When I do in an installshield script a MsiGetProperty(hMSI, "SUPPORTDIR", szSupportDir, nLength) this is also empty.

So please:
When is the SUPPORTDIR filled?
Are the support files always place in c:\windows\system32\0? In that case it would be save to use a reference for mine dll's to that location.
How can I determine (or is there another property) where mine support files are placed?


Thanks in advance.
Labels (1)
0 Kudos

(6) Replies
Barbara
Level 7

I always use the language independent supportdir and it is always working. So I would suggest the following to you:
Please write a verbose MSI logfile and see how the supportdir is created. In my logfile I can see something like:

[CODE]Aktion gestartet um 13:54:06: ISSetupFilesExtract.
MSI (c) (D8:F8) [13:54:06:677]: Invoking remote custom action. DLL: C:\Users\ADMINI~1\AppData\Local\Temp\MSI824D.tmp, Entrypoint: SFStartupEx
MSI (c) (D8:10) [13:54:06:677]: Cloaking enabled.
MSI (c) (D8:10) [13:54:06:677]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (D8:10) [13:54:06:677]: Connected to service for CA interface.
1: Starting to extract setup files
1: Getting SUPPORTDIR property :
1: Extracting SetupFiles to: C:\Users\ADMINI~1\AppData\Local\Temp\{63A4B861-E466-41D4-9FD6-CF7F4F697FDB}
1: Getting ISSetupFile table view [/CODE]

Look at the end of your logfile: How is the SUPPORTDIR property set?

How do you retrieve the SUPPORTDIR property: Do you use a deferred CA? If yes, you have to use a CA type 51 to set the property for the deferred execution.

Barbara
0 Kudos

How to create language independent supportdir.  Please help.

0 Kudos
Edward67
Level 3

Hello Barbara,

Thanks for your answer.

I've added Custom Actions following this link:http://kb.flexerasoftware.com/selfservice/viewContent.do?externalID=Q112615

When I take a look using the Direct Editor, I see GetSUPPORTDIR having a type of 51.

Then created the verbose log. I see the following entries:
Action start 08:53:41: ISSetupFilesExtract.
MSI (c) (A0:6C) [08:53:41:847]: Invoking remote custom action. DLL: C:\Users\OnGuard\AppData\Local\Temp\MSI66B3.tmp, Entrypoint: SFStartupEx
MSI (c) (A0:50) [08:53:41:850]: Cloaking enabled.
MSI (c) (A0:50) [08:53:41:850]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (A0:50) [08:53:41:850]: Connected to service for CA interface.
1: Starting to extract setup files
1: Getting SUPPORTDIR property : 0
1: Extracting SetupFiles to: 0
1: Getting ISSetupFile table view
1: Executing ISSetupFile table view
1: Extracting Setup File:
1: 0\OnGuard.Setup.dll
1: Extracting Setup File:
1: 0\OnGuard.Setup.dll.config
1: Extracting Setup File:
1: 0\Devart.Data.Oracle.dll
1: Extracting Setup File:
1: 0\Devart.Data.dll
1: Setting SUPPORTDIR property to: 0
MSI (c) (A0!08) [08:53:42:616]: PROPERTY CHANGE: Adding ISSETUPFILESCOMPLETED property. Its value is 'Completed'.


Because of this, my support files are extracted to "C:\windows\system32\0". I don't see them in the temp-directory.

When the created function DisplaySupportDir is executed, the value for SUPPORDIR holds the correct temp-directory (however, this dir doesn't contains my support files).

Edward
0 Kudos
Edward67
Level 3

Mmm, maybe something is corrupt in my setup projecct.

Just ran the verbose logging on another setup created from another project. When I look at the log, I see this:

MSI (c) (DC:FC) [09:14:16:065]: Connected to service for CA interface.
1: Starting to extract setup files
1: Getting SUPPORTDIR property :
1: Extracting SetupFiles to: C:\Users\OnGuard\AppData\Local\Temp\{83CCA3D9-C709-403D-8BD6-1BBE991194AF}
1: Getting ISSetupFile table view
1: Executing ISSetupFile table view
1: Extracting Setup File:
1: C:\Users\OnGuard\AppData\Local\Temp\{83CCA3D9-C709-403D-8BD6-1BBE991194AF}\OnGuard.Setup.dll.config
1: Extracting Setup File:
1: C:\Users\OnGuard\AppData\Local\Temp\{83CCA3D9-C709-403D-8BD6-1BBE991194AF}\Devart.Data.Oracle.dll
1: Extracting Setup File:
1: C:\Users\OnGuard\AppData\Local\Temp\{83CCA3D9-C709-403D-8BD6-1BBE991194AF}\Devart.Data.dll
1: Setting SUPPORTDIR property to: C:\Users\OnGuard\AppData\Local\Temp\{83CCA3D9-C709-403D-8BD6-1BBE991194AF}
MSI (c) (DC!AC) [09:14:16:613]: PROPERTY CHANGE: Adding SUPPORTDIR property. Its value is 'C:\Users\OnGuard\AppData\Local\Temp\{83CCA3D9-C709-403D-8BD6-1BBE991194AF}'.
MSI (c) (DC!AC) [09:14:16:613]: PROPERTY CHANGE: Adding ISSETUPFILESCOMPLETED property. Its value is 'Completed'.
1: Setting ISSETUPFILESCOMPLETED property


This looks better. I will see if it also solves my problem with using the SUPPORTDIR.
0 Kudos
Barbara
Level 7

Edward,

this is looking really strange for me.

The only things I can think of are:
Is the property SUPPORTDIR accidently set in the Property Manager to a value of 0 ? If so, delete the entry. Also look in the Property Manager for the value of the property SecureCustomProperties: Is the property SUPPORTDIR included ?

Barbara
0 Kudos
Edward67
Level 3

Hello Barbara,

Yes, you were right. SUPPORTDIR was listed in the property manager and set to 0. In my other project it wasn't. It's solved now. Thank you for this hint, I've overlooked this for days.

Edward
0 Kudos