ICE03:字符串溢出(大于列中允许的长度);表:自定义操作

2023-11-27

我收到以下代码的 ICE03:字符串溢出警告:

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

此代码包含在片段中的单独 .wxs 文件中。如果我将其直接包含在“产品”标签中,则警告就会消失。以下代码也会发生这种情况:

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

我想了解一下为什么会出现这种情况?


The CustomAction/@ValueWindows Installer 中属性的长度限制为 255 个字符。所以,如果你的"VERY LONG STRING COMES HERE"如果字符数超过 255 个,您将收到 ICE 警告。Binary/@Id甚至更短,因为它们是 MSI 中的“标识符”,并且 Windows Installer 针对这些标识符标准化了 72 个字符。

为什么 ICE03 警告消息在放置在Product元素,因为 ICE 验证是针对最终 MSI 执行的。最终的 MSI 并不关心您如何组织 .wxs 源代码来构建 MSI。您是否有可能看到其他警告(不是 ICE03),具体取决于代码是否在Product或在一个Fragment?

我询问两者之间差异的原因Product or Fragment是因为编译器在编译时知道不同的事情Product部分与aFragment部分。编译器知道Product部分将创建一个 .MSI 文件。 AFragment另一方面可以创建 .MSI 文件、.MSM 文件或 .MSP 文件。除了 .MSI 文件之外,.MSM 和 .MSP 文件还有其他限制。

例如,在构建 .MSM 文件时,所有标识符都带有后缀Module/@Id。这为已经限制为 72 个字符的标识符增加了 37 个字符。这Binary/@Id进一步受到限制,因为它最终成为 .MSM 文件中流的名称,因此不能超过 60 个字符左右。

无论如何,最终的结果是,当处于Fragment编译器将所有可能的规则应用于标识符。在所有情况下,这些规则可能比绝对必要的限制稍微严格一些。但是,如果您注意到所有警告/错误,那么您的代码应该在所有情况下都能编译。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ICE03:字符串溢出(大于列中允许的长度);表:自定义操作 的相关文章

随机推荐

  • ASP.NET:在应用程序的预启动初始化阶段无法调用此方法

    我正在尝试让 ASP NET MVC 3 站点在 IIS 6 0 上运行 目前 当我从服务器请求页面时 会出现以下错误 解析器错误消息 在应用程序的预启动初始化阶段无法调用此方法 在这一行
  • 检测字符串是否采用 UTF-8 双重编码

    我需要处理大量的短字符串 主要是俄语 但任何其他语言都是可能的 包括来自键盘上行走的猫的随机垃圾 其中一些字符串将以 UTF 8 编码两次 我需要可靠地检测给定的字符串是否是双重编码的 并修复它 我应该在不使用任何外部库的情况下执行此操作
  • Spring缓存给定的请求

    我正在使用 Spring MVC 编写一个 Web 应用程序 我有一个如下所示的界面 public interface SubscriptionService public String getSubscriptionIDForUSer S
  • 通过JavaScript向手机发送短信

    我是 JavaScript 初学者 我想开发一个JavaScript来从我的笔记本电脑或手机发送短信到手机 启用java 但计算机选项会更好 有谁能够帮助我 你可以试试这些人 http www zeepmobile com blog p 1
  • 是否可以在 Google Chrome 扩展程序中确定选项卡的打开方式?

    我正在寻找一种方法来确定 Google Chrome 扩展程序中给定选项卡的开启器 父选项卡 我查看了 Tab 的文档 但似乎没有任何内容可以产生此信息 http code google com chrome extensions tabs
  • (Windows) 同时打开同一文件

    我正在尝试在 Windows 中打开一个文件以同时进行写入和读取 我有一个程序 每一秒 写入文件和一个从文件读取的程序 在unix中它可以完美工作 但在windows中不起作用 我无法打开已经打开的文件 我用 fopen 打开文件 我怎么解
  • 使用 IdentityServer4 保护 Web API 2.2

    我有 Web API 2 2 它使用 Net 4 5 2 框架 该框架由 angular2 应用程序使用 并且存在现有的 IdentityServer4 实现 我想使用 IdentityServer4 保护我的 Web API 我的问题是我
  • Volley - 直接下载到文件(内存中没有字节数组)

    我在 Android 项目中使用 Volley 作为我的网络堆栈 我的部分要求是下载可能非常大的文件并将其保存在文件系统上 我一直在研究 volley 的实现 似乎 volley 工作的唯一方式是将整个文件下载到一个可能很大的字节数组中 然
  • 当高度改变时,Chrome 不会重新计算宽度

    我有一个包含链接和图像的缩略图列表 因此当用户将鼠标悬停在li元素 它的高度变成100 但是它起作用的问题wrong由于某些奇怪的原因 在 Chrome 中 我不明白为什么在 Chrome 中悬停li宽度不会调整为 新 尺寸 注意 这是我的
  • CSS 中的 rem 和 em 有何不同?

    在网站源代码中 我有时看到开发人员使用rem单元 是否类似于em 我尝试看看它实际上做了什么 但它与什么相关 Demo HTML div Hello p World p div CSS div font size 1 4rem div p
  • Android NDK 构建 - 包括 LOCAL_SHARED_LIBRARIES?

    我在 Android NDK 下构建项目时遇到问题 最有可能的是由于未包含正确的共享 静态库 我添加了 lsomeLib 但 LOCAL SHARED LIBRARIES 似乎没有被包含在内 我的 Android mk 包含以下内容 LOC
  • 为什么这个 ptrace 程序说 syscall returned -38?

    它是一样的this one除了我正在跑步execl bin ls ls NULL 结果显然是错误的 因为每个系统调用都返回 38 user test test trace syscall 59 called with rdi 0 rsi 0
  • 如何创建一个在应用程序运行时始终运行的线程

    编辑 我现在确定问题与while true 循环保存所有其他命令 正如我已注释掉的那样 并且应用程序部署时没有附加的异常 我不确定它有多重要 但我的ServletContextListener实现看起来像这样 public class Bi
  • 迭代计算任意数量的集合的笛卡尔积

    我想计算任意数量的笛卡尔积nonempty在 Java 中设置 我已经写了迭代代码 public static
  • 如何从 netBeans 平台的菜单中删除项目?

    我有模块应用程序 当我运行它时 该应用程序的主窗口有相当复杂的菜单 如何从菜单中删除某些项目 您可以通过向项目的layer xml 文件添加条目来从菜单栏中删除菜单项 你应该通读 NetBeans 平台 HTML 编辑器 教程中的 调整用户
  • “$”的密钥代码是什么?

    我试图禁止在文本输入中输入所有其他字符 Since to get the you have to press the shift key and the 4 key I am not sure how you would get the k
  • R:从 h2o.randomForest() 和 h2o.gbm() 绘制树

    寻找一种有效的方法来在 rstudio H2O 的 Flow 或 h2o 的 RF 和 GBM 模型的本地 html 页面中绘制树木 类似于下面链接中的图像 具体来说 如何为下面的代码 可能通过解析 h2o download pojo rf
  • 将带有千位(和小数)分隔符的字符串转换为双精度

    用户可以输入double进入文本框 数字可能包含千位分隔符 我想在将输入的数字插入数据库之前验证用户输入 是否有一个 C 函数可以转换此类输入 1 555 99 into double 如果有 如果输入无效 它是否会发出错误信号 我不想以类
  • 按组划分的观察数量[重复]

    这个问题在这里已经有答案了 在 R 中 我有一个数据框 其中的观察结果由多个值描述 其中一个值是一个因子 我已按此因素对数据集进行排序 并希望添加一列 在其中我将获得该因素每个级别的大量观察结果 例如 factor obsnum a 1 a
  • ICE03:字符串溢出(大于列中允许的长度);表:自定义操作

    我收到以下代码的 ICE03 字符串溢出警告