wix - 错误 CNDL0004:从命令行运行时文件元素包含意外的属性“src”
Posted
技术标签:
【中文标题】wix - 错误 CNDL0004:从命令行运行时文件元素包含意外的属性“src”【英文标题】:wix - error CNDL0004: The file element contains an unexpected attribute "src" when running from the command line 【发布时间】:2018-09-04 17:17:01 【问题描述】:当我从 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"
我在 EMR_COMMON.wxs 文件的第 4 行看到了错误。
-
片段>
DirectoryRef Id="INSTALLDIR">
组件 ID="component_COMMON" Guid="" DiskId="1">
文件 ID="file0_COMMON" Name="apcrun.exe" src="E:\Code\apcrun.exe"/>
我认为“src”属性已被弃用,应该用其他属性替换。
但是这里我不能直接替换EMR_COMMON.wxs
文件bcz中的"src"
属性,它是从"Build.xml"
生成的。
那么我需要在"Build.xml"
文件中更改哪些属性才能在"EMR_COMMON.wxs"
文件中替换"src"
的适当属性?
【问题讨论】:
是的,src
已弃用,取而代之的是 Source
for File Elements(朝向底部)。至于Build.xml
,那是一个Ant构建脚本吗?您使用的是 Visual Studio、Eclipse 还是其他工具?
您可以添加自己的答案并将其设置为已接受。所以谁有类似的问题可以找到它。
【参考方案1】:
我解决了这个问题。我编写了下面的 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");
【讨论】:
以上是关于wix - 错误 CNDL0004:从命令行运行时文件元素包含意外的属性“src”的主要内容,如果未能解决你的问题,请参考以下文章
错误 CNDL0027:File/@Name 属性的值不是有效的 8.3 兼容名称
WiX Bootstrapper:如何从命令行设置刻录变量?
即使使用 --no-build 标志运行 dotnet test 时如何避免 Wix 构建错误?
将Wix 3.0迁移到Wix 4.0时出现错误:WXCP0006:此节点前的空格不正确(WhitespacePrecedingNodeWrong)