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