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

时间:2018-09-04 17:17:01

标签: wix wix3.5 wix3 wix3.7 wix3.8

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

$_POST['degree_name'][0]; //the value of the first field with [name=degree_name]
$_POST['degree_name'][1]; //the value of the 2nd field with [name=degree_name]
//...etc

我收到以下错误:

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

我在第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”属性已弃用,应将其替换为其他一些属性。

但是在这里,我无法直接替换它从error CNDL0004: The file element contains an unexpected attribute "src" 生成的"src"文件中的EMR_COMMON.wxs属性。

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

1 个答案:

答案 0 :(得分:0)

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

此C#代码是在“ SchemaChange”项目中编写的。构建项目后,我将在Build.xml中使用此exec,如下所示: exec可执行文件=“ $ {workingdir} \ SchemaChange \ bin \ release \ SchemaChange.exe” failonerror =“ true”>