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