wix - ICE03: String overflow (greater than length permitted in column); Table: CustomAction -
i getting ice03: string overflow warning following code:
<customaction id="customactionid" return="check" property="someproperty" value="very long string comes here" execute="immediate"/>
this code included in separate .wxs file in fragment. if include directly within "product" tag warning disappears. happens following code:
<binary id="somebinarywithaverylongname" sourcefile="sourcefile" />
i find out why happening?
the customaction/@value
attribute has limit of 255 characters in windows installer. so, if "very long string comes here"
has more 255 characters hitting ice warning. binary/@id
shorter because "identifiers" in msi , windows installer standardized on 72 characters identifiers.
it mystery why ice03warning message different when placed under product
element because ice validation executed against final msi. final msi not care how organized .wxs source code build msi. possible seeing other warnings (not ice03) based on whether code in product
or under fragment
?
the reason ask difference between product
or fragment
because compiler knows different things when compiling product
section vs. fragment
section. compiler knows product
section creating .msi file. fragment
on other hand creating .msi file, .msm file, or .msp file. .msm , .msp files have additional restrictions beyond .msi file.
for example, when building .msm file of identifiers suffixed module/@id
. adds additional 37 characters identifiers limited 72 characters. binary/@id
further limited because ends being name of stream in .msm file , can't go on around 60 chars.
anyway, net result when in fragment
compiler applies possible rules identifiers. rules may more restrictive absolutely necessary in cases. if heed warnings/errors code should compile in cases.
Comments
Post a Comment