Re: [WiX-users] global property set in server is not passed to the client
Thank you, Bob and Blair. I moved the Custom element to InstallUISequence like: InstallUISequence Custom Action=SetExitDialogOptText Before=ExecuteAction NOT Installed /Custom /InstallUISequence and the problem was resolved! On Mon, Jan 30, 2012 at 12:09 AM, Blair os...@live.com mailto:os...@live.com wrote: As has been mentioned on this list before, properties go just one way between UI and Execute sequences. It is by apparent design that you can't change a property (any property) in the execute sequence and pick up that change in the UI sequence. -Original Message- From: John Cooper [mailto:jocoo...@jackhenry.com mailto:jocoo...@jackhenry.com] Sent: Thursday, January 26, 2012 12:14 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] global property set in server is not passed to the client Read up on the Secure attribute to the Property element in the Wix schema. Only secure properties are visible in both the UI and Execute sequences. -- John Merryweather Cooper Build Install Engineer - ESA Jack Henry Associates, Inc.(r) Shawnee Mission, KS 66227 Office: 913-341-3434 x791011 tel:913-341-3434%20x791011 jocoo...@jackhenry.com mailto:jocoo...@jackhenry.com www.jackhenry.com http://www.jackhenry.com -Original Message- From: T. Kuro Kurosaka [mailto:k...@basistech.com mailto:k...@basistech.com] Sent: Thursday, January 26, 2012 1:37 PM To: wix-users@lists.sourceforge.net mailto:wix-users@lists.sourceforge.net Subject: [WiX-users] global property set in server is not passed to the client In my main .wxs file that is based on the WixUI_InstallDir dialog set, I set WIXUI_EXITDIALOGOPTIONALTEXT so that the final dialog after successful installation has an extra information. This is done like this: Wix xmlns= Product ... UIRef Id=WixUI_InstallDir / Property Id=WIXUI_INSTALLDIR Value=INSTALLDIR / Property Id=WIXUI_EXITDIALOGOPTIONALTEXT Value=Please manually copy the product license file to a proper location./ /Product /Wix This works fine. The text stored in this property is shown. I wanted to show where exactly the user needs to copy our license file, and put these elements instead of the Property/ element: CustomAction Id=SetExitDialogOptText Property=WIXUI_EXITDIALOGOPTIONALTEXT Value=Please manually copy the product license file to [INSTALLDIR]\licenses\. / InstallExecuteSequence Custom Action=SetExitDialogOptText After=InstallInitialize!-- InstallFinalize should also work? -- NOT Installed /Custom /InstallExecuteSequence This didn't work. The Exit Dialog doesn't show the text stored in this property. The log file from the installer shows that the property is set properly in the server, [INSTALLDIR] being replaced by the actual directory. But after the control is handed back to the client, this property doesn't exist. I thought properties named with all uppercase letters are in global effect, and passed between the server and the client, back and forth. So I'm puzzled. What can cause this behavior? Do I have to do something special to pass properties from the server to the client? Kuro -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net mailto:WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you
[WiX-users] global property set in server is not passed to the client
In my main .wxs file that is based on the WixUI_InstallDir dialog set, I set WIXUI_EXITDIALOGOPTIONALTEXT so that the final dialog after successful installation has an extra information. This is done like this: Wix xmlns= Product ... UIRef Id=WixUI_InstallDir / Property Id=WIXUI_INSTALLDIR Value=INSTALLDIR / Property Id=WIXUI_EXITDIALOGOPTIONALTEXT Value=Please manually copy the product license file to a proper location./ /Product /Wix This works fine. The text stored in this property is shown. I wanted to show where exactly the user needs to copy our license file, and put these elements instead of the Property/ element: CustomAction Id=SetExitDialogOptText Property=WIXUI_EXITDIALOGOPTIONALTEXT Value=Please manually copy the product license file to [INSTALLDIR]\licenses\. / InstallExecuteSequence Custom Action=SetExitDialogOptText After=InstallInitialize!-- InstallFinalize should also work? -- NOT Installed /Custom /InstallExecuteSequence This didn't work. The Exit Dialog doesn't show the text stored in this property. The log file from the installer shows that the property is set properly in the server, [INSTALLDIR] being replaced by the actual directory. But after the control is handed back to the client, this property doesn't exist. I thought properties named with all uppercase letters are in global effect, and passed between the server and the client, back and forth. So I'm puzzled. What can cause this behavior? Do I have to do something special to pass properties from the server to the client? Kuro -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] global property set in server is not passed to the client
On 1/26/12 12:13 PM, John Cooper wrote: Read up on the Secure attribute to the Property element in the Wix schema. Only secure properties are visible in both the UI and Execute sequences. I'm not sure if the security is the problem because I am not seeing the errors like Ignoring disallowed property MYPROPERTY in the MSI log that should appear according to the Wix book. Just in case, I added this line: Property Id=WIXUI_EXITDIALOGOPTIONALTEXT Secure=yes/ rebuilt the installer, but the problem didn't go away. Kuro -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] MSI runtime error code 2343
I am trying to modify the InstallDir template by replacing LicenseAgreementDlg with a new dialog that is a modified version of BrowseDlg with which the user would specify the directory where our license file can be found. My prototype fails just after hitting Next in WelcomeDlg with the unexpected error popup which quotes error code 2343. I ran the MSI with msiexec to collect the log. But the log doesn't tell me much. The most detailed message seems to be just: DEBUG: Error 2343: Specified path is empty. It doesn't tell me what path it is talking about. I reviewed all property values that the logger dumped after the error message, and the paths look good. How can I trace the error further from here? Below are messages surrounding the error message in question: MSI (c) (78:38) [13:12:01:764]: PROPERTY CHANGE: Modifying CostingComplete property. Its current value is '0'. Its new value: '1'. MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: Registry MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: BindImage MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: ProgId MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: PublishComponent MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: SelfReg MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: Extension MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: Font MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: Shortcut MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: Class MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: Icon MSI (c) (78:38) [13:12:01:764]: Note: 1: 2205 2: 3: TypeLib MSI (c) (78:38) [13:12:01:764]: Note: 1: 2727 2: MSI (c) (78:D0) [13:12:05:670]: Note: 1: 2205 2: 3: Error MSI (c) (78:D0) [13:12:05:670]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 2898 Info 2898.For WixUI_Font_Title textstyle, the system created a 'Tahoma' font, in 0 character set, of 14 pixels height. MSI (c) (78:D0) [13:12:05:670]: Note: 1: 2343 MSI (c) (78:D0) [13:12:05:670]: Note: 1: 2205 2: 3: Error MSI (c) (78:D0) [13:12:05:670]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 2343 DEBUG: Error 2343: Specified path is empty. The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2343. The arguments are: , , MSI (c) (78:D0) [13:12:07:654]: Note: 1: 2205 2: 3: Error MSI (c) (78:D0) [13:12:07:654]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (c) (78:D0) [13:12:07:654]: Product: Rosette Web Service 64 Bit -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2343. The arguments are: , , Action ended 13:12:07: WelcomeDlg. Return value 3. MSI (c) (78:50) [13:12:07:654]: Doing action: FatalError MSI (c) (78:50) [13:12:07:654]: Note: 1: 2205 2: 3: ActionText Action 13:12:07: FatalError. Action start 13:12:07: FatalError. Action 13:12:07: FatalError. Dialog created Action ended 13:12:09: FatalError. Return value 2. Action ended 13:12:09: INSTALL. Return value 3. -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to bring a VBScript window in front of the wizard window?
On 1/17/12 7:49 PM, Christopher Painter wrote: I find it more elegant to have the custom action only set a property and return. Then on the remaining control events use the property in a condition to perform a SpawnDialog on a custom dialog that displayes the error message. This way MSI continues to handle the UI. Thank you for your suggestion, Christopher. I wish I wouldn't need to deal with GUI. This particular code is for testing/debugging, and so having this come out under the wizard window is OK. But I would eventually need to have a dialog to let user choose a file. Because the stock custome controls don't include a file dialog, I think I need to use scripting. Would there be any other way around that hopefully doesn't involve writing a DLL? I have another (hopefully the last) related question. After searching the Internet, I came up with this VBScript CustomAction Id=AskLicense Script=vbscript ![CDATA[ Dim ObjFSO Set ObjFSO = CreateObject(UserAccounts.CommonDialog) ObjFSO.Filter = License File|*.xml ObjFSO.FilterIndex = 3 ObjFSO.InitialDir = C:\ Session.Property(SELECTEDRLPLICENSEFILE) = ObjFSO.FileName ]] /CustomAction This didn't work. I got an error pop up, and the MSI log has this entry: MSI (s) (4C:C8) [18:29:53:667]: Hello, I'm your 32bit Impersonated custom action server. Error 1720. There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. Custom action AskLicense script error -2146827859, Microsoft VBScript runtime error: ActiveX component can't create object: 'UserAccounts.CommonDialog' Line 2, Column 1, Apparently, CreateObject(UserAccounts.CommonDialog) couldn't create the window. Do I use some other mean to create a dialog under MSI? Kuro From: T. Kuro Kurosakak...@basistech.com Sent: Tuesday, January 17, 2012 7:20 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] How to bring a VBScript window in front of the wizard window? I have this wix code that calls a VBScript code to show a window: CustomAction Id=AskLicense Script=vbscript ![CDATA[ MsgBox The License File Path will be asked here by a file dialog eventually., 1, License File Needed Session.Property(SELECTEDRLPLICENSEFILE) = C:/dummy/location/foo.txt ]] /CustomAction InstallExecuteSequence Custom Action=AskLicense After=InstallValidateNot Installed/Custom /InstallExecuteSequence The window is shown but it's hidden under the wizard window. How can I bring it to the front, or else side of the wizard window? Kuro -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to bring a VBScript window in front of the wizard window?
BTW, I found an answer to my original question. I needed to pass 4096 instead of 1 in the second argument like this: MsgBox The License File Path will be asked here by a file dialog eventually., 4096, License File Needed Here 4096 = vbOKOnly(0) + vbSystemModal(4096) where these constants are listed in: http://msdn.microsoft.com/en-us/library/sfw6660x Kuro -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] How to bring a VBScript window in front of the wizard window?
I have this wix code that calls a VBScript code to show a window: CustomAction Id=AskLicense Script=vbscript ![CDATA[ MsgBox The License File Path will be asked here by a file dialog eventually., 1, License File Needed Session.Property(SELECTEDRLPLICENSEFILE) = C:/dummy/location/foo.txt ]] /CustomAction InstallExecuteSequence Custom Action=AskLicense After=InstallValidateNot Installed/Custom /InstallExecuteSequence The window is shown but it's hidden under the wizard window. How can I bring it to the front, or else side of the wizard window? Kuro -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Is there a UI Control to pick an existing file?
As a part of installation process, I would like to let the user to pick a license file, and install (copy) it after the main installation is done. I browse through the list of UI Controls that WiX provides, but I only see the controls that pick a directory. Do I have to write a custom component in VB? T. Kuro Kurosaka -- Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Writing JDK version verification code, and Wix debugging tip
On 1/13/12 7:28 AM, Peter Shirtcliffe wrote: Why not check it when the application starts up ? The product in question runs as a service. There is no GUI. The Java wrapper could only log the error and quit. For that reason, the product marketing tells us we should check the prerequisite software (i.e. JDK) is installed at our product installation time. I'm just a lone software engineer :-) Kuro -- RSA(R) Conference 2012 Mar 27 - Feb 2 Save $400 by Jan. 27 Register now! http://p.sf.net/sfu/rsa-sfdev2dev2 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Writing JDK version verification code, and Wix debugging tip
Wix MSI newbie here. My product requires JDK 1.6 installation, and I'm trying to come up with Wix code to verify the system has JDK 1.5 installed before proceeding installation of my product. I thought this would work: Property Id=JDKVER RegistrySearch Id=NetFramework20 Root=HKLM Key=SOFTWARE\JavaSoft\Java Development Kit Name=CurrentVersion Type=raw / /Property Condition Message=This application requires Java Developer Kit 1.5 (or higher). ![CDATA[Installed OR (JDKVER 1.5 )]] !-- test with 1.6, 1.7, 1.8, etc. will be added later. -- /Condition But this didn't work. Even if JDK 1.5 is installed, this message is displayed. Anybody has experience doing JDK version check? In an attempt to debug this, I wanted to display the value of property JDKVER, and inserted this code. This is a modified version of the code I've found in the Internet: CustomAction Id=ShowProperty Script=vbscript Execute=immediate ![CDATA[ MsgBox JDKVER = + Session.Property(JDKVER) ]] /CustomAction InstallExecuteSequence Custom Action=ShowProperty Before=InstallFinalizeTrue/Custom !-- Not Installed didn't work either. -- /InstallExecuteSequence But no popup came out. What am I doing wrong here? Thank you in advance. T. Kuro Kurosaka -- RSA(R) Conference 2012 Mar 27 - Feb 2 Save $400 by Jan. 27 Register now! http://p.sf.net/sfu/rsa-sfdev2dev2 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users