> My question is: Can I safely ignore this warning? It would be wise to avoid the warning. Schema of the CustomAction table shows that Action field is S255 which is up to 255 characters.
CustomAction.idt Action Type Source Target s72 i2 S72 S255 CustomAction Action Property.idt Property Value s72 l0 Property Property However, Value field in Property table is not bound to 255 characters. You can define a property (e.g. MyCaData) and use the property in CustomAction definition using brackets. (e.g. [MyCaData]) > Just out of curiosity: You say you have an immediate action which calls > DoAction to run your deferred action. Do you have a reason for this? I > have just an immediate action (Type 51) which sets the property and > hardcoded my deferred action in the InstallExecuteSequence... You can also schedule an immediate custom action and a deferred one in InstallExecuteSequence in pairs. But in a way using MsiDoAction, you only have to schedule an immediate custom action. And from an immediate custom action, you can schedule a deferred custom action several times. for (int i = 0; i < 10; ++i) { /* You can also set progress bar estimate here as well */ MsiSetProperty("MyDeferredCustomAction", mydata[i]); MsiDoAction("MyDeferredCustomAction"); } The above will schedule MyDeferredCustomAction several times with different data, usually read from a custom table. Custom actions in wix source codes may be a good reference. Hope this helps. Regards, Chesong Lee -----Original Message----- From: Krause, Henning [mailto:[EMAIL PROTECTED] Sent: Saturday, December 29, 2007 2:25 AM To: Chesong Lee; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ICE03: String overflow warning Hi Lee, thanks for your reply. I know about all these restrictions. That's why my CustomActionData property is so big :-) I have already scheduled an immediate property which puts all the needed properties in the appropriate custom action property. The point is that the property exceeds 255 chars and causes this ICE03 warning. My question is: Can I safely ignore this warning? Just out of curiosity: You say you have an immediate action which calls DoAction to run your deferred action. Do you have a reason for this? I have just an immediate action (Type 51) which sets the property and hardcoded my deferred action in the InstallExecuteSequence... Kind regards, Henning Krause > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of > Chesong Lee > Sent: Saturday, December 29, 2007 3:39 AM > To: wix-users@lists.sourceforge.net > Cc: Krause, Henning > Subject: Re: [WiX-users] ICE03: String overflow warning > > Codes in deferred custom action cannot directly access MSI database. > > In the function, you can only read "CustomActionData" property, of > which value is set as the name of the custom action. > > For example, to transfer the data to the deferred custom action named > "MyDeferredCustomAction", you have to set the property > "MyDeferredCustomAction" by defining it in the MSI Property table or > using immediate custom actions. And then in your deferred custom > action code, you use "MsiGetProperty(_T("CustomActionData"), ...) to > retrieve the value. > > See this: http://msdn2.microsoft.com/en-us/library/aa370543.aspx > > In well-coded custom actions where deferred custom actions are > required, we only schedule the immediate custom actions in the > InstallExecutionSequence table, and in an immediate custom action > ("MyImmediateCustomAction") , we access the MSI table and set > "MyDeferredCustomAction" property appropriately and call > DoMsiAction("MyDeferredCustomAction"). As MSI properties only can be > strings, you may have to use parsers or use binary-to-text > encoder/decoder (e.g. binhex, base64 or ascii85). > > Hope this helps. > > > On Dec 28, 2007 8:47 AM, Krause, Henning <[EMAIL PROTECTED]> wrote: > > Hi, > > > > When I compile my WIX project, I get the following warning: > > > > ICE03: String overflow (greater than length permitted in column); > Table: > > CustomAction, Column: Target > > > > Is this something I should care about? After all, the column is > limited > > (according to Orca) to 255 chars which is not enough given that I > must > > put in all the data I want to access from a deferred custom action. > Or > > is there another way to transfer data from the MSI database to a > > deferred custom action? > > > > Kind regards, > > Henning > > > > --------------------------------------------------------------------- > ---- > > This SF.net email is sponsored by: Microsoft > > Defy all challenges. Microsoft(R) Visual Studio 2005. > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users