cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sternr
Level 4

Using Support Files From Custom Action

Hey,
I'm a new user to InstallShield so forgive me if my answer is dumb 😉
I want to start an exe file that I have in the Support files,
But it seems that the files under the Support files never get extracted!

What am I missing?

Thanks ahead

--sternr
Labels (1)
0 Kudos
(13) Replies
RobertDickau
Flexera Alumni

What type of project are you using? If it's a Basic MSI project, using the Binary table is usually more appropriate; otherwise, what is the code that fails?
0 Kudos
sternr
Level 4

Thanks for the reply!
Yes - I'm using Basic MSI project, and the reason I'm not using the binary table is, that some of the files I store in the Support Files is a small application which uses some dlls as well.

The code that fails is saying it cant find the files in the SUPPORTDIR directory
Looking at the temporary folder shows its correct - none of the files I added to the "Support Files" is shown there...

Any ideas?

Thanks

--sternr
0 Kudos
Christopher_Pai
Level 16

Take a look at the sequences and a logfile from the install. You should see a CA called ISSetupFilesExtract and a property called [SUPPORTDIR] getting set. IS automatically sets this up when you add a file to Support Files. Try adding/removing another file if the CA is missing.
0 Kudos
sternr
Level 4

It isnt there... is there a way to add it manually?
0 Kudos
Christopher_Pai
Level 16

Did you try adding another file to support files? That's the action that triggers the authoring. Wiring it up manually is possible but a pain since there are records in numerous tables to properly extract and cleanup.
0 Kudos
sternr
Level 4

Yeah, tried a few times with different types of files (not that it should matter...)
But still to no avail...
0 Kudos
sternr
Level 4

Wait!
I've looked at my temp folder and I see a different folder than the one I recieve from SUPPORTDIR that contain my files!
Could it be that there's a different key that I need to use?
0 Kudos
Christopher_Pai
Level 16

Are you using SUPPORTDIR or MsiGetProperty(SUPPORTDIR) ( the latter is correct as of IS12 and later. See the migration sticky in this forum ).


As an aside ( since I already did the work ) adding a file adds the following to your install:

[HTML]

ISSetupFilesHelper<ISProductFolder>\redist\language independent\i386\SFHelper.dll







CancelSetupYesDoActionISSetupFilesCleanup1200
SetupCompleteErrorFinishDoActionISSetupFilesCleanup1200
SetupCompleteSuccessOKDoActionISSetupFilesCleanup1200
SetupInterruptedFinishDoActionISSetupFilesCleanup1200





ISSetupFilesCleanup257ISSetupFilesHelperSFCleanupEx
ISSetupFilesExtract257ISSetupFilesHelperSFStartupEx




New Path VariableC:2



ISSetupFile
FileName
Stream
Language
Splash
Path

SetupFile1boot.ini00<New Path Variable>\boot.ini





ISSetupFilesCleanup6601
ISSetupFilesExtract3





ISSetupFilesCleanup1301
ISSetupFilesExtract3
[/HTML]
0 Kudos
sternr
Level 4

WOW!
Gosh I feel stupid now, you maid my day 😉
Thanks alot!

I know I'm pushing it, but one last question (I promise!),
I've read in the docs I need to use GetProfInt to get data from my setup.ini file, BUT it also requires me to give it the location of the setup.ini...
How can I get the location of my initial setup file? or again - am I doing somthing stupid?

Thanks alot anyway!!!

--sternr
0 Kudos
Christopher_Pai
Level 16

Try MsiGetProperty ... SETUPEXEDIR
0 Kudos
sternr
Level 4

**EDITED**
Sorry, it all works, BUT I must use the .exe file and not the MSI directly...
The SOURCEDIR property (used by MsiGetProperty) is available for both situations but may be incorrect in case of a streamed MSI.

Again thanks alot for the training and the immense help!
If at anytime you'd need help in .Net... 😉

--sternr
0 Kudos
Christopher_Pai
Level 16

Yes, SETUPEXEDIR is a public property passed into the MSI by SETUP.EXE. I assumed ( incorrectly ) that since you had a setup.ini you probably had a setup.exe. You can also checkout the OriginalDatabase property but you'll have to throw it through a CA to parse out the directory.

As for the .NET.... well I am looking for a little help with a side project. How's your C++? 🙂

Basically I'm looking for a way to emulate a .NET remoting host in C++ without loading the CLR.
0 Kudos
sternr
Level 4

Interesting, but then you'd need to implement deserialization in C++ wouldn't?
Sound interesting, if you're serious - PM me I've had my share of C++ & .Net interoperability, and I'm always on for some more 😉
0 Kudos