wix installer ice03语言ID无效

时间:2014-07-17 01:12:21

标签: wix installer windows-installer

我有一个夜间构建,在不同的机器上运行然后我的 在我的机器上,我可以编译安装程序并使用msi没有问题 但是在晚上的机器上我得到了

C:\ Builds \ 73 \ Tools \ AppInstaller \ src \ AppInstaller \ APPExportReleaseDir.wxs(693):ICE03:无效的语言ID;表:文件,列:语言,密钥:filAAED19CB2C0BBE304CDB8EB1AAF7473F

显示的文件是system.windows.interactivity.xml

您能解释一下ICE03错误是什么以及如何解决这个问题?

这里说删除语言或将其设置为“0” http://softwarepackaging.co.uk/iceerrors但没有解释。

2 个答案:

答案 0 :(得分:3)

ICE规则Internal Consistency Evaluators - 本质上是一系列自我诊断脚本检查数据库参照完整性数据库一致性数据类型和架构合规性以及在整个MSI上运行几个内容验证测试逻辑测试(这是真的是伪装的MS-SQL数据库。)

换句话说,您根据数据库架构和许多内容验证规则检查数据库的内容,并确定数据库是否客观地说出包含它应该是什么,以及它是否以正确的方式连接。

一些进一步的检查超越了简单的模式和类型检查,并执行与应用程序实际安装方式相关的健全性检查。某些文件不应该转到某些位置,某些注册表项永远不应该写入,以及类似的检查。可以创建自定义检查并将其添加为企业部署的QA步骤。

检查写为custom actions(基本上是MSI在安装期间运行可执行,自定义安装逻辑的机制),并在验证运行期间检查和评估数据库。 Windows SDK工具Orca能够在任何MSI文件上运行验证,如下图所示:

enter image description here

您的特定错误消息与ICE03

有关
  

语言标识无效 - 数据库包含无效的数字语言标识符(LANGID)。请参阅Language data type。见Language Identifier Constants and Strings。例如,美国为1033,语言为中性为0。

在您的情况下,如果文件是语言中立的,则需要完全删除语言说明符,或者修复Wix源文件以设置适当的语言代码。以下是安装Orca的MSI文件的示例(1033是英文,大多数文件未指定,意味着它们是语言中立的):

enter image description here

答案 1 :(得分:2)

你真的需要在MSI中包含该文件吗?通常,具有程序集名称的xml文件对开发人员仅作为SDK文档有用,并且不属于已发布的产品。

就此而言,您是否甚至创作了wxs,或者您是否在构建时使用某种形式的动态创作?如果是这样,请将此添加到我为什么这是反模式的原因列表中。 (别担心,几乎没有人想要相信我。)

有关ICE(基本单元测试)的更多信息,请参阅:

MSI Tip: Authoring an ICE using C# / DTF