tablas tabla services repetir grupos filas encabezados encabezado dinamicas contar como columnas wix wix3.7

wix - services - ICE03: Desbordamiento de cadena(mayor que la longitud permitida en la columna); Tabla: CustomAction



grupos de columnas reporting services (1)

Recibo una ICE03: advertencia de desbordamiento de cadena para el siguiente código:

<CustomAction Id="CustomActionID" Return="check" Property="SomeProperty" Value="VERY LONG STRING COMES HERE" Execute="immediate"/>

Este código está incluido en un archivo .wxs separado en un fragmento. Si incluyo esto directamente dentro de la etiqueta "Producto", la advertencia desaparece. Esto también ocurre con el siguiente código:

<Binary Id="SomeBinaryWithAVeryLongName" SourceFile="SOURCEFILE" />

Me gustaría saber por qué sucede esto?


El CustomAction/@Value tiene un límite de 255 caracteres en Windows Installer. Por lo tanto, si su "VERY LONG STRING COMES HERE" tiene más de 255 caracteres, estará presionando esa advertencia ICE. Binary/@Id son aún más cortos porque son "identificadores" en el MSI y Windows Installer estandarizado en 72 caracteres para esos identificadores.

Es un misterio por qué el mensaje ICE03warning sería diferente cuando se coloca en un elemento Product porque la validación ICE se ejecuta contra el MSI final. Al MSI final no le importa cómo organizó su código fuente .wxs para construir el MSI. ¿Es posible que esté viendo otras advertencias (no ICE03) en función de si el código está en el Product o debajo de un Fragment ?

La razón por la que pregunto acerca de la diferencia entre Product o Fragment es porque el compilador sabe cosas diferentes cuando está compilando una sección Product frente a una sección Fragment . El compilador sabe que una sección de Product creará un archivo .MSI. Un Fragment por otro lado, podría estar creando un archivo .MSI, un archivo .MSM o un archivo .MSP. Los archivos .MSM y .MSP tienen restricciones adicionales más allá de un archivo .MSI.

Por ejemplo, al compilar un archivo .MSM, todos los identificadores tienen el sufijo Mod Module/@Id . Eso agrega 37 caracteres adicionales a los identificadores que ya están limitados a 72 caracteres. El Binary/@Id está limitado aún más porque termina siendo el nombre de la secuencia en el archivo .MSM y por lo tanto no puede repasar algo alrededor de 60 caracteres.

De todos modos, el resultado neto es que cuando en un Fragment el compilador aplica todas las reglas posibles a los identificadores. Las reglas pueden ser un poco más restrictivas de lo absolutamente necesario en todos los casos. Sin embargo, si prestas atención a todas las advertencias / errores, tu código debería compilarse en todos los casos.