wix - 错误CNDL0004:从命令行运行时,file元素包含意外的属性“src”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wix - 错误CNDL0004:从命令行运行时,file元素包含意外的属性“src”相关的知识,希望对你有一定的参考价值。

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

E:CodePCPEuilder>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”Name =“apcrun.exe”src =“E: Code apcrun.exe”/>

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

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

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

答案

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

这个C#代码是在“SchemaChange”项目中编写的。一旦我构建了这个项目,我就在Build.xml中使用这个exec,如下所示:exec executable =“$ {workingdir} SchemaChange bin release SchemaChange.exe”failonerror =“true”>

以上是关于wix - 错误CNDL0004:从命令行运行时,file元素包含意外的属性“src”的主要内容,如果未能解决你的问题,请参考以下文章

Wix错误未定义的预处理器变量(错误CNDL0150)

错误 CNDL0027:File/@Name 属性的值不是有效的 8.3 兼容名称

Wix 3.7:candle.exe 从命令行崩溃

WiX Bootstrapper:如何从命令行设置刻录变量?

即使使用 --no-build 标志运行 dotnet test 时如何避免 Wix 构建错误?

将Wix 3.0迁移到Wix 4.0时出现错误:WXCP0006:此节点前的空格不正确(WhitespacePrecedingNodeWrong)