首页 > 解决方案 > wix - 错误 CNDL0004:从命令行运行时文件元素包含意外的属性“src”

问题描述

从 2.0 版迁移到 4.0 版后,当我从 WIx 安装程序的命令行运行以下命令时

E:\Code\PCPE\builder>ant -v -f Build.xml -Dlabel =.001 install

我收到以下错误:

error CNDL0004: The file element contains an unexpected attribute "src"

我在第 4 行的 EMR_COMMON.wxs 文件中看到错误。

  1. 片段>
  2. DirectoryRef Id="INSTALLDIR">
  3. 组件 ID="component_COMMON" Guid="" DiskId="1">
  4. 文件 ID="file0_COMMON" 名称="apcrun.exe" src="E:\Code\apcrun.exe"/>

我认为“src”属性已被弃用,应该用其他属性替换。

但是在这里我不能直接替换它生成"src"的文件 bcz 中的属性。EMR_COMMON.wxs"Build.xml"

那么我需要在文件中更改哪些属性才能在文件"Build.xml"中获得适当的属性?"src""EMR_COMMON.wxs"

标签: wixwix3.5wix3wix3.7wix3.8

解决方案


我解决了这个问题。我编写了下面的 C# 代码,将“src”属性名称替换为“Source”属性。为此,我首先得到“文件”节点列表,获取文件节点的计数,然后使用 XmlNodeList fileNodeList = compElement.GetElementsByTagName("File"); XmlElement fileElement = (XmlElement)fileNodeList[i]; String srcString = fileElement.GetAttribute("src"); fileElement.SetAttribute("Source", srcString); fileElement.RemoveAttribute("src");


推荐阅读