Since my email is being screwy (bounce, bounce, bounce):

Be *very* *very* careful that the second custom action does not elevate or has 
some way to verify that the supporting files were not tampered with.

(Another idea to my first idea of marshalling the binary data through 
CustomActionData, would be to only marshal over hashes of the support files 
instead of the files in their entirety and ensure the right files are in the 
temp location before using them... and hold locks on them until complete).

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dwyer, Shawn
Sent: Tuesday, May 06, 2008 11:36
To: Kiran Subhedar (Sogeti); Blair Murri
Cc: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Need assistance!

I'm not sure if you'll still have the problem, but my guess is that you will.

Our 'ExtractSupportFiles' C++ custom action calls GetTempPath() and extracts 
all our support files to a subfolder.  At this point (because of terminal 
services) the installer is running under session 1, so the path returned by 
GetTempPath() would be "C:\Documents and Settings\sdwyer\Local Settings\Temp\1".

Later we have another C++ custom action that tries to use these support files.  
However when GetTempPath() is called, it is now in a different msiexec process 
that was run in session 0, so the path returned was "C:\Documents and 
Settings\sdwyer\Local Settings\Temp".  Since all of our support files were in 
the "1" subfolder, the later custom action didn't find them.

I guess it depends on when [TempFolder] is resolved.

________________________________
From: Kiran Subhedar (Sogeti) [mailto:[EMAIL PROTECTED]
Sent: Tuesday, May 06, 2008 2:22 PM
To: Dwyer, Shawn; Blair Murri
Cc: wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Need assistance!


Thanks for the heads up Shawn.

I have just completed writing my C++ custom action although I am a .Net coder. 
:)
I am using the Win API function GetTempPath() in my C++ CA to refer to the 
%TEMP% directory and back in my WIX file, I am calling my support files as 
[TempFolder]support.exe.

So will the %TEMP% location still be different in the cases highlighted by you?

Thanks,
Kiran

From: Dwyer, Shawn [mailto:[EMAIL PROTECTED]
Sent: Tuesday, May 06, 2008 10:00 AM
To: Kiran Subhedar (Sogeti); Blair Murri
Cc: wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Need assistance!

We use a similar approach of storing support files in a Binary table and 
extracting them to %TEMP% during a custom action.  However one thing we ran 
into was that during the custom actions that wanted to use these files, %TEMP% 
was not the same as where we extracted them to.  This was due to each msiexec 
process being run under a different session, which can be the case when 
installing through terminal services (remote desktop), and on Wiindows Server 
2003 and 2008.

As a work around we had the 'ExtractSupportFiles' custom action also write the 
path it extracted to in the registry and referenced that in later custom 
actions rather than %TEMP%.

Just something to watch out for.

________________________________
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kiran Subhedar 
(Sogeti)
Sent: Monday, May 05, 2008 10:34 PM
To: Blair Murri
Cc: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Need assistance!

Thanks again Blair! That's a very nice idea. Can you point me to some code or 
site which can get me started?

Also I had another way (as explained in this link: 
http://blog.deploymentengineering.com/2006/12/managed-code-can-access-msihandle_10.html
 ), using which a C++ CA will pass the MSI handle to the managed CA. In this 
way the managed CA could access Binary table and execute the files. But this 
means a lot of work as I need to host the CLR, then create the app domain, then 
load and execute the assemblies. This indeed means a lot of work.

I liked you approach so I will give it a try.

Thanks again!

Kiran

From: Blair Murri [mailto:[EMAIL PROTECTED]
Sent: Monday, May 05, 2008 7:19 PM
To: Kiran Subhedar (Sogeti)
Cc: wix-users@lists.sourceforge.net
Subject: RE: Need assistance!

What I have seen others use is a C++ DLL CustomAction that extracts all needed 
files from the Binary table to the %TEMP% directory, leaving them there, and 
the deferred CAs then use/consume those files using the TEMP environment 
variable to find them. If you really shouldn't leave the files around, you 
could add a rollback/commit CA that erases them from the %TEMP% folder.

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kiran Subhedar 
(Sogeti)
Sent: Monday, May 05, 2008 7:07 PM
To: Blair Murri
Cc: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Need assistance!

Thanks Blair! I could not use a Binary table since the executables executing 
in-turn depend on one or other files. Moreover these are console applications 
so they will show a pop-up when the CA is executed. Also the CA's are deferred 
actions. So I think a Binary table wouldn't come to my rescue.

Thanks,
Kiran

From: Blair Murri [mailto:[EMAIL PROTECTED]
Sent: Monday, May 05, 2008 6:37 PM
To: Kiran Subhedar (Sogeti)
Cc: wix-users@lists.sourceforge.net
Subject: RE: Need assistance!

You could try using the Binary table instead of the File table to store the 
support files. You would need to extract then yourself in a custom action, but 
it could be the same custom action if that CA is not deferred.

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kiran Subhedar 
(Sogeti)
Sent: Monday, May 05, 2008 2:31 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Need assistance!

Hi,
I am having an issue over here. I am using a custom action which uses some 
support files. The action is required to run both in installation and 
un-installation phases. But the support files needs to be removed after 
installation. That means I will require these files again during 
un-installation. How can I remove files after installation and again 
install\remove them after un-installation? Any help would be appreciated.

Thanks,
Kiran
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to