I'll move the thread on to the users...

Wilson, Phil wrote:
> 
> That "could not find part of the path" message is sometimes security
> related. So if you're impersonating a limited user you can't update
> files in the Program Files folder. 
> 
> Phil Wilson 
> 
> 
> ________________________________
> 
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Dana
> Gutride
> Sent: Tuesday, November 14, 2006 9:54 AM
> To: [email protected]; [email protected]
> Subject: Re: [WiX-users] [WiX-devs] Managed Code Custom Action & Reading
> XmlFile
> 
> 
> (including wix-users on this thread)
> 
> It might be better to place this thread on the wix-users list because it
> seems to fall into that category rather than the devs list.  One thing I
> should mention is managed code custom actions are definitely not
> recommended.  There have been several very detailed sites mentioned on
> this list in the past that explain exactly why that is so ( see
> http://www.tramontana.co.hu/wix/lesson3.php#3.5)
> 
> The path to the file is not different during a deferred action, but you
> do not have access to your public properties at this point in the
> install.  That means even if you figured out a way to get your C# custom
> action to work with a c++ helper dll or some sort of shim, when you
> defer the custom action, you wouldn't be able to access the
> INSTALLLOCATION property.  To see what I'm saying, you might want to
> replace that property with a hard coded value and see if your custom
> action still fails. 
> 
> Dana
> 
> 
> 
> On 11/14/06, carlldev <[EMAIL PROTECTED]> wrote: 
> 
> 
>       To be more specific:
>       I'm using a managed code custom action (C#).
>       
>       // this works up to....
>               public static int DoMyAction(long handle)
>               {
>                   // get the msi's handle
>                   IntPtr msiHandle = new IntPtr(handle); 
>                   try
>                   {
>                       // get the installationpath
>                       string installationPath =
> MsiHandler.GetProperty(msiHandle,
>       "INSTALLLOCATION") + @"\";
>                       installationPath =
> installationPath.Replace(@"\\", @"\");
>       
>                       // get the path to the xml file
>                       string filePath = installationPath +
> @"myfile.xml";
>       
>       //... here. It fails here (file not found) 
>                       try
>                       {
>                           // open the xml file and get the root
>                           XmlDocument doc = new XmlDocument();
>                           resources.Load(filePath);
>       
>       Are you saying that the path to the file is different during
> deferred
>       execution to when the file is actually installed?
>       
>       
>       You really shouldn't be able to access any properties you need
> in a deferred
>       custom action.  I do something similar in our installer, I lay
> down a config 
>       file, open it up and replace some variables with a custom
> action.  I use the
>       following immediate custom action to write to the
> CustomActionData property,
>       then in the deferred custom action, I access that property and
> use it to 
>       read the file.
>       
>       <CustomAction Id="SetDeferredProp"
> Property="DeferredCustomActionName"
>       Value="[FILEDIR]" />
>       
>       Dana
>       
>       
>       On 11/14/06, carlldev < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> > wrote:
>       >
>       >
>       > Thanks for your quick reply.
>       >
>       > I tried setting the customaction to deferred but that also
> doesn't work. I
>       > don't know how to access files through the CustomActionData
> property. 
>       > I don't have any problems accessing property values either - I
> can access
>       > the properties I need. I just can't touch any files.
>       >
>       > Maybe I can try it a different way - by including the xml file
> as a binary 
>       > inclusion and opening that? Then it is technically not an
> installed file.
>       > But I can't find a good example of doing that either. Most
> examples just
>       > execute binary files.
>       >
>       > Any more ideas? 
>       >
>       >
>       > Dana Gutride wrote:
>       > >
>       > > Two possible ideas come to mind.  1) Is your custom action
> scheduled to
>       > > run
>       > > as a deferred custom action?   2) Depending on when you are
> attempting 
>       > to
>       > > execute this custom action, you might be having some
> difficulty
>       > accessing
>       > > the msi properties.  Deferred custom actions have access to
> only a very
>       > > limited number of properties (search for CustomActionData).
> The custom 
>       > > action you are describing would need to be deferred and use
> the
>       > > CustomActionData property if it's accessing any installed
> files.
>       > >
>       > > See this section of the tutorial for more info: 
>       > > http://www.tramontana.co.hu/wix/lesson3.php#3.6
>       > >
>       > > Dana
>       > >
>       > >
>       > > On 11/14/06, carlldev < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> > wrote:
>       > >>
>       > >>
>       > >> Hi there,
>       > >>
>       > >> I have a working Custom Action that reads an installed
> XmlFile and
>       > >> executes 
>       > >> a command line a number of times with parameters extracted
> from the
>       > >> xmlfile.
>       > >>
>       > >> The code works fine if I put it after InstallFinalize but
> that means if
>       > >> the
>       > >> command line execution fails there is no way to rollback
> the
>       > >> installation.
>       > >>
>       > >> I have added debugging to the code and it reveals this:
>       > >> 'Could not find a part of the path 'C:\Program 
>       > >> Files\Product\Resources.xml'.'.
>       > >>
>       > >> But since the code is being executed after InstallFiles the
> xmlfile
>       > >> should
>       > >> be there.
>       > >>
>       > >> The custom action (in Wix) looks like this:
>       > >> <CustomAction Id="DoMyAction" BinaryKey="CustomActions"
>       > >> DllEntry="DoMyAction" />
>       > >> <Custom Action="DoMyAction" After="InstallFiles">NOT
> Installed</Custom> 
>       > >>
>       > >> Any help would be appreciated.
>       > >> Thanks
>       
>       
>       --
>       View this message in context:
> http://www.nabble.com/Managed-Code-Custom-Action---Reading-Xml-File-tf26
> 28948.html#a7341265
>       Sent from the wix-devs mailing list archive at Nabble.com.
>       
>       
>       
> ------------------------------------------------------------------------
> - 
>       SF.net email is sponsored by: A Better Job is Waiting for You -
> Find it Now.
>       Check out Slashdot's new job board. Browse through tons of
> technical jobs
>       posted by companies looking to hire people just like you.
>       http://jobs.slashdot.org/
>       _______________________________________________
>       WiX-devs mailing list
>       [email protected] 
>       https://lists.sourceforge.net/lists/listinfo/wix-devs
>       
> 
> 
> 
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> WiX-devs mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wix-devs
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Managed-Code-Custom-Action---Reading-Xml-File-tf2628948.html#a7356156
Sent from the wix-devs mailing list archive at Nabble.com.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to