hi

i am trying something similer to this,i want to delete folders at uninstall
time,i have one VBscript for that,
but how can i set path for that or how ur VBscript is getting path in ur
code.
how u called ur VBscript from wix installer

On Wed, Oct 20, 2010 at 1:06 AM, McKinnon, Chris <cmckin...@atb.com> wrote:

> You are absolutely right.  I just wanted to keep all my custom actions
> in the same DLL.  I have two other actions for encrypting and decrypting
> the .config files.  I switched my code to a VBScript and it works
> nicely.  Here's the script if anyone is interested:
>
> Function DirectoryExists()
>  Dim path, fso
>
>  path = Session.Property("_DirectoryExists_Path")
>  Set fso = CreateObject("Scripting.FileSystemObject")
>  If (fso.FolderExists(path)) Then
>    Session.Property("_DirectoryExists_Result") = "yes"
>  Else
>    Session.Property("_DirectoryExists_Result") = "no"
>  End If
>  DirectoryExists = ERROR_SUCCESS
> End Function
>
> It's still frustrating that the DLL approach didn't work.
>
> Thanks,
>
> Chris McKinnon
>
> -----Original Message-----
>  From: Wilson, Phil [mailto:phil.wil...@invensys.com]
> Sent: Tuesday, October 19, 2010 11:38 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Calling a managed custom action from a UI
> control
>
> Are you really cranking up all this infrastructure just to see if a
> directory exists? There's got to be a simpler way, even if it's only a
> horrible little VBScript 10 line custom action. At least that is
> natively supported by Windows Installer.
>
> Phil Wilson
>
> -----Original Message-----
> From: McKinnon, Chris [mailto:cmckin...@atb.com]
> Sent: Tuesday, October 19, 2010 8:58 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Calling a managed custom action from a UI
> control
>
> Hi Blair,
>
> No log entries, unfortunately.  I've let my installer sit spinning for
> about 20-30 minutes.  I could let it sit longer but I don't think that
> would help.  I'm going to try my installer on a Windows 2000
> Professional workstation when I have a chance today.  Let me know if
> there's anything else I can do to track down this issue.
>
> Thanks,
>
> Chris McKinnon
>
> -----Original Message-----
> From: Blair [mailto:os...@live.com]
> Sent: Tuesday, October 19, 2010 12:06 AM
> To: 'General discussion for Windows Installer XML toolset.'
> Subject: Re: [WiX-users] Calling a managed custom action from a UI
> control
>
> Whenever Windows Installer launches a DLL-type custom action, it does so
> from a separate msiexec.exe process instance (sandboxing the custom
> action
> code, if you will). However, because this "sandbox" process may be
> reused,
> and because loading pre-4.x CLR runtimes "marks" the process preventing
> a
> different runtime from ever being loaded, DTF runs the assemblies in
> their
> own child process.
>
> When you build a DTF custom action assembly, a native stub is
> built/modified
> that contains an entry point for each method with a
> CustomActionAttribute,
> along with being "packed" with your assembly, config, and dependencies.
> This
> stub sends a copy of itself to RunDll.exe after creating a two-way
> communications pipe to communicate with its child process (which allows
> for
> querying the session for properties, running queries, etc.).
>
> The stub in the (grandchild) process establishes communication with its
> parent (the stub in the sandbox), extracts its payload, loads the
> indicated
> CLR, loads your assembly into an AppDomain, and finally calls your code
> (this is where the transition into managed code finally occurs). You
> seem to
> be hanging somewhere in this paragraph (at least until you kill the
> rundll.exe process). Are there any System or Application event log
> entries
> that may explain/describe some failure with the CLR spinup?
> Unfortunately
> calling MsiProcessMessage is documented to not work from a DoAction so
> any
> error or progress logging performed by the stub won't show up.
>
> -----Original Message-----
> From: McKinnon, Chris [mailto:cmckin...@atb.com]
> Sent: Monday, October 18, 2010 10:52 AM
> To: wix-users@lists.sourceforge.net
> Subject: Re: [WiX-users] Calling a managed custom action from a UI
> control
>
> Thanks for the ideas Steve.
>
> I tried running my code in a separate thread, like yours, but it still
> hangs.  I'm running on Windows Vista Business 32-bit.  I noticed, by
> accident, that in Process Explorer when the custom action starts up that
> a new process tree is spawned:
>
> 1. msiexec.exe
>        2. msiexec.exe
>                3. rundll.exe (DTF Self-Extracting Custom Action)
>
> The custom action is run when I click the next button on the
> ServiceOptionsDlg in my installer.  The 1st time I click the button it
> hangs.  If I kill the process tree above and click the next button
> again, it runs my custom action.  Every time after that, if I click
> "next", my custom action works fine.  I'm baffled why.  Here's the log
> from me, killing the process tree the 1st time (the one at
> 11:11:06:126), then running my custom action (Directory.Exists()) on a
> path of "t" and then on a path of "C:\":
>
> Action 11:08:53: ServiceOptionsDlg. Dialog created
> MSI (c) (CC:24) [11:08:58:414]: PROPERTY CHANGE: Adding ARCHIVE_PATH
> property. Its value is 't'.
> MSI (c) (CC:24) [11:08:58:543]: PROPERTY CHANGE: Adding
> _DirectoryExists_Path property. Its value is 't'.
> MSI (c) (CC:24) [11:08:58:543]: Doing action: CheckArchiveDirectory
> Action 11:08:58: CheckArchiveDirectory.
> Action start 11:08:58: CheckArchiveDirectory.
> MSI (c) (CC:80) [11:08:58:573]: Invoking remote custom action. DLL:
> C:\Users\e25735\AppData\Local\Temp\MSIF23D.tmp, Entrypoint:
> DirectoryExists
> MSI (c) (CC:A8) [11:08:58:574]: Cloaking enabled.
> MSI (c) (CC:A8) [11:08:58:574]: Attempting to enable all disabled
> privileges before calling Install on Server
> MSI (c) (CC:A8) [11:08:58:575]: Connected to service for CA interface.
> Action ended 11:11:02: CheckArchiveDirectory. Return value 1.
> MSI (c) (CC:24) [11:11:06:126]: Doing action: CheckArchiveDirectory
> Action 11:11:06: CheckArchiveDirectory.
> Action start 11:11:06: CheckArchiveDirectory.
> MSI (c) (CC:A0) [11:11:06:184]: Invoking remote custom action. DLL:
> C:\Users\e25735\AppData\Local\Temp\MSIE4A7.tmp, Entrypoint:
> DirectoryExists
> MSI (c) (CC:A0) [11:11:06:184]: Lost connection to custom action server
> process. Attempting to regenerate.
> MSI (c) (CC:A8) [11:11:06:259]: Cloaking enabled.
> MSI (c) (CC:A8) [11:11:06:259]: Attempting to enable all disabled
> privileges before calling Install on Server
> MSI (c) (CC:A8) [11:11:06:259]: Connected to service for CA interface.
> MSI (c) (CC!8C) [11:11:31:366]: PROPERTY CHANGE: Adding
> _DirectoryExists_Result property. Its value is 'no'.
> Action ended 11:11:47: CheckArchiveDirectory. Return value 1.
> MSI (c) (CC:24) [11:11:47:571]: PROPERTY CHANGE: Adding VErr_Text
> property. Its value is 'The archive path specified does not exist.'.
> Action 11:11:47: ValidationErrDlg. Dialog created
> MSI (c) (CC:24) [11:11:57:555]: PROPERTY CHANGE: Modifying ARCHIVE_PATH
> property. Its current value is 't'. Its new value: 'c:\'.
> MSI (c) (CC:24) [11:11:57:731]: PROPERTY CHANGE: Modifying
> _DirectoryExists_Path property. Its current value is 't'. Its new value:
> 'c:\'.
> MSI (c) (CC:24) [11:11:57:731]: Doing action: CheckArchiveDirectory
> Action 11:11:57: CheckArchiveDirectory.
> Action start 11:11:57: CheckArchiveDirectory.
> MSI (c) (CC:14) [11:11:57:745]: Invoking remote custom action. DLL:
> C:\Users\e25735\AppData\Local\Temp\MSIAE3D.tmp, Entrypoint:
> DirectoryExists
> MSI (c) (CC!E8) [11:12:05:774]: PROPERTY CHANGE: Modifying
> _DirectoryExists_Result property. Its current value is 'no'. Its new
> value: 'yes'.
> Action ended 11:12:06: CheckArchiveDirectory. Return value 1.
> Action 11:12:06: VerifyReadyDlg. Dialog created
>
> It appears that the 1st time my custom action runs, it's hanging before
> it even gets to my code.  I've tried putting MessageBox and
> System.Diagnosics.Debugger.Launch() as the 1st line of code in my custom
> action.  They never get called.  I also tried this on our SIT Windows
> 2003 server.  The custom action runs without hanging.  Here is the log:
>
> Action 11:44:17: ServiceOptionsDlg. Dialog created
> MSI (c) (68:74) [11:44:20:682]: PROPERTY CHANGE: Adding ARCHIVE_PATH
> property. Its value is 't'.
> MSI (c) (68:74) [11:44:20:854]: PROPERTY CHANGE: Adding
> _DirectoryExists_Path property. Its value is 't'.
> MSI (c) (68:74) [11:44:20:854]: Doing action: CheckArchiveDirectory
> Action 11:44:20: CheckArchiveDirectory.
> Action start 11:44:20: CheckArchiveDirectory.
> MSI (c) (68:1C) [11:44:21:651]: Invoking remote custom action. DLL:
> C:\DOCUME~1\e25735\LOCALS~1\Temp\1\MSI2.tmp, Entrypoint: DirectoryExists
> MSI (c) (68:AC) [11:44:21:667]: Cloaking enabled.
> MSI (c) (68:AC) [11:44:21:667]: Attempting to enable all disabled
> priveleges before calling Install on Server
> MSI (c) (68:AC) [11:44:21:667]: Connected to service for CA interface.
> MSI (c) (68!68) [11:44:22:745]: PROPERTY CHANGE: Adding
> _DirectoryExists_Result property. Its value is 'no'.
> Action ended 11:44:22: CheckArchiveDirectory. Return value 1.
> MSI (c) (68:74) [11:44:22:901]: PROPERTY CHANGE: Adding VErr_Text
> property. Its value is 'The archive path specified does not exist.'.
> Action 11:44:22: ValidationErrDlg. Dialog created
> MSI (c) (68:74) [11:44:29:480]: PROPERTY CHANGE: Modifying ARCHIVE_PATH
> property. Its current value is 't'. Its new value: 'c:\'.
> MSI (c) (68:74) [11:44:29:637]: PROPERTY CHANGE: Modifying
> _DirectoryExists_Path property. Its current value is 't'. Its new value:
> 'c:\'.
> MSI (c) (68:74) [11:44:29:637]: Doing action: CheckArchiveDirectory
> Action 11:44:29: CheckArchiveDirectory.
> Action start 11:44:29: CheckArchiveDirectory.
> MSI (c) (68:00) [11:44:29:668]: Invoking remote custom action. DLL:
> C:\DOCUME~1\e25735\LOCALS~1\Temp\1\MSI3.tmp, Entrypoint: DirectoryExists
> MSI (c) (68!00) [11:44:30:387]: PROPERTY CHANGE: Modifying
> _DirectoryExists_Result property. Its current value is 'no'. Its new
> value: 'yes'.
> Action ended 11:44:30: CheckArchiveDirectory. Return value 1.
> Action 11:44:30: VerifyReadyDlg. Dialog created
>
> Anyone have any ideas what would be causing the hang?  It was thinking
> it might be permissions or a group policy setting but then running the
> custom action should fail every time.
>
> Thank,
>
> Chris McKinnon
>
>
> -----Original Message-----
> From: Steve Green [mailto:sgr...@gtl.biz]
> Sent: Monday, October 18, 2010 2:38 AM
> To: wix-users@lists.sourceforge.net
> Subject: Re: [WiX-users] Calling a managed custom action from a UI
> control
>
>
> Chris,
>
> I had a similar problem opening the windows OpenFileDialog common
> dialog. I
> found it would work fine on Windows Server 2003 but on Windows 7 it just
> hung, showing the same spinning wheel.
>
> I ended up having to open the dialog in a new thread, then all worked
> fine.
>
> My C# code was as follows:
>
>
>   public class ShowOpenFileDlg
>   {
>      private OpenFileDialog _dlg;
>      private Session _session;
>
>      public ShowOpenFileDlg(Session session)
>      {
>         _session = session;
>         _dlg = new OpenFileDialog();
>      }
>
>      public void Show()
>      {
>         if (_dlg.ShowDialog() == DialogResult.OK)
>         {
>            _session["BROWSEFILE"] = _dlg.FileName;
>         }
>      }
>   }
>
>      [CustomAction]
>      public static ActionResult ShowFileOpenDlg(Session session)
>      {
>         ShowOpenFileDlg dlg = new ShowOpenFileDlg(session);
>         Thread thread = new Thread(dlg.Show);
>         thread.SetApartmentState(ApartmentState.STA);
>         thread.Start();
>         thread.Join();
>
>         return ActionResult.Success;
>      }
>
> As for debugging, I had the same problem with the log file so ended up
> just
> adding MessageBox.Show(...) lines through my code.
>
> Hope this helps.
>
> Steve
>
> McKinnon Chris wrote:
> >
> > Hi,
> >
> > I have built a managed custom action to check if a UNC path exists.
> I'm
> > not installing to this path.  This path is simply being set as the
> value
> > of a .config file setting during the install.  I just want to verify
> > that it is a valid path.  The custom action is defined as follows:
> >
> > [CustomAction]
> > public static ActionResult DirectoryExists(Session session)
> > {
> > CustomActionService service = new CustomActionService();
> > return service.DirectoryExists(session);
> > }
> >
> > I created the custom action project using the Visual Studio template
> for
> > a C# custom action.  This custom action expects a
> > "_DirectoryExists_Path" property to contain the path to check.  And it
> > populates a "_DirectoryExists_Result" with a "yes" (true) or "no"
> > (false) result.  The custom action is just calling
> > System.IO.Directory.Exists() to do the check.  I have the custom
> action
> > defined in the installer like so:
> >
> > <CustomAction Id="CheckArchiveDirectory"
> > BinaryKey="AppDevInstallCustomActions.dll" DllEntry="DirectoryExists"
> > Execute="immediate" Return="ignore" Impersonate="yes" />
> >
> > And to be called in the UI, like so:
> >
> > <Publish Dialog="ServiceOptionsDlg" Control="Back" Event="NewDialog"
> > Value="ServiceCredentialsDlg">1</Publish>
> > <Publish Dialog="ServiceOptionsDlg" Control="Next"
> > Property="_DirectoryExists_Path" Value="[ARCHIVE_PATH]"
> > Order="1">1</Publish>
> > <Publish Dialog="ServiceOptionsDlg" Control="Next" Event="DoAction"
> > Value="CheckArchiveDirectory" Order="2">1</Publish>
> > <Publish Dialog="ServiceOptionsDlg" Control="Next"
> Property="VErr_Text"
> > Value="The archive path specified does not exist."
> > Order="3"><![CDATA[_DirectoryExists_Result = "no"]]></Publish>
> > <Publish Dialog="ServiceOptionsDlg" Control="Next" Event="SpawnDialog"
> > Value="ValidationErrDlg" Order="4"><![CDATA[_DirectoryExists_Result =
> > "no"]]></Publish>
> > <Publish Dialog="ServiceOptionsDlg" Control="Next" Event="NewDialog"
> > Value="VerifyReadyDlg" Order="5"><![CDATA[_DirectoryExists_Result =
> > "yes"]]></Publish>
> >
> > When run to the installer and click the "Next" button, I get the
> > spinning blue wheel of death.  I've tried adding a
> > "System.Diagnostics.Debugger.Launch();" line to the above code but the
> > debugger is never launched.  If I run a verbose log, it just ends at
> the
> > line before the custom action call.  Here's the last 5 lines:
> >
> > Action 10:41:55: ServiceOptionsDlg. Dialog created
> > MSI (c) (20:44) [10:41:57:524]: Doing action: CheckArchiveDirectory
> > Action 10:41:57: CheckArchiveDirectory.
> > Action start 10:41:57: CheckArchiveDirectory.
> > MSI (c) (20:6C) [10:41:57:541]: Invoking remote custom action. DLL:
> >
> > I'm stumped.   Any ideas or tips for debugging this would be
> > appreciated.  I'm also encrypting (and decrypting) my .config files
> > using this same managed custom action dll, so I know the DLL is
> > partially working.  These custom actions are scheduled in the
> > InstallExecuteSequence after "InstallFinalize", however.
> >
> > Thanks,
> >
> > Chris McKinnon
> >
> >
> >
> > The information contained in this e-mail is confidential and may
> contain
> > privileged information. It is intended only for the person or persons
> > named above. If you are not an intended recipient of this e-mail
> please be
> > advised that any distribution or copying of this e-mail is prohibited.
> If
> > you have received this e-mail in error, please notify us by return
> e-mail
> > and delete all copies of the e-mail and any attachments.
> >
> ------------------------------------------------------------------------
> ------
> > Download new Adobe(R) Flash(R) Builder(TM) 4
> > The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> > Flex(R) Builder(TM)) enable the development of rich applications that
> run
> > across multiple browsers and platforms. Download your free trials
> today!
> > http://p.sf.net/sfu/adobe-dev2dev
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> >
>
> --
> View this message in context:
> http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Calling-a-
> managed-custom-action-from-a-UI-control-tp5639681p5646237.html
> Sent from the wix-users mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------
> ------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that
> run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> The information contained in this e-mail is confidential and may contain
> privileged information. It is intended only for the person or persons
> named
> above. If you are not an intended recipient of this e-mail please be
> advised
> that any distribution or copying of this e-mail is prohibited. If you
> have
> received this e-mail in error, please notify us by return e-mail and
> delete
> all copies of the e-mail and any attachments.
>
> ------------------------------------------------------------------------
> ----
> --
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that
> run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> ------------------------------------------------------------------------
> ------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that
> run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> The information contained in this e-mail is confidential and may contain
> privileged information. It is intended only for the person or persons
> named above. If you are not an intended recipient of this e-mail please
> be advised that any distribution or copying of this e-mail is
> prohibited. If you have received this e-mail in error, please notify us
> by return e-mail and delete all copies of the e-mail and any
> attachments.
>
> ------------------------------------------------------------------------
> ------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that
> run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> *** Confidentiality Notice: This e-mail, including any associated or
> attached files, is intended solely for the individual or entity to which
> it is addressed. This e-mail is confidential and may well also be
> legally privileged. If you have received it in error, you are on notice
> of its status. Please notify the sender immediately by reply e-mail and
> then delete this message from your system. Please do not copy it or use
> it for any purposes, or disclose its contents to any other person. This
> email comes from a division of the Invensys Group, owned by Invensys
> plc, which is a company registered in England and Wales with its
> registered office at 3rd Floor, 40 Grosvenor Place, London, SW1X 7AW
> (Registered number 166023). For a list of European legal entities within
> the Invensys Group, please go to
> http://www.invensys.com/legal/default.asp?top_nav_id=77&nav_id=80&prev_i
> d=77.
>
> You may contact Invensys plc on +44 (0)20 3155 1200 or e-mail
> recept...@invensys.com. This e-mail and any attachments thereto may be
> subject to the terms of any agreements between Invensys (and/or its
> subsidiaries and affiliates) and the recipient (and/or its subsidiaries
> and affiliates).
>
>
>
> ------------------------------------------------------------------------
> ------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that
> run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> The information contained in this e-mail is confidential and may contain
> privileged information. It is intended only for the person or persons named
> above. If you are not an intended recipient of this e-mail please be advised
> that any distribution or copying of this e-mail is prohibited. If you have
> received this e-mail in error, please notify us by return e-mail and delete
> all copies of the e-mail and any attachments.
>
>
> ------------------------------------------------------------------------------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to