WIX错误,文档元素名称'Wix'无效

问题描述:

我有多个由heat.exe生成的wxs文件。每个文件都有一个根元素Wix,两个子元素Fragment,并且每个Fragment元素分别具有DirectoryRef和ComponentGroup元素。样品是财产:WIX错误,文档元素名称'Wix'无效

<?xml version="1.0" encoding="utf-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Fragment> 
     <DirectoryRef Id="ANEXMCM"> 
      <Component Id="cmp06C5225B7EE36AAEA9ADB0AF882F1053" Guid="2924A2A0-D7A2-407E-B9B8-B40AAE1204ED"> 
       <File Id="filABF39DC4BC6ED4474A2C2DB1C1681980" KeyPath="yes" Source="SourceDir\content.txt" /> 
      </Component> 
     </DirectoryRef> 
    </Fragment> 
    <Fragment> 
     <ComponentGroup Id="ANEXMCM_CID"> 
      <ComponentRef Id="cmp06C5225B7EE36AAEA9ADB0AF882F1053" /> 
     </ComponentGroup> 
    </Fragment> 
</Wix> 

我包括在该文件的主要WIX文件作为<包括wixfile.wxs? >。当我试图构建我的项目时(我尝试了Visual Studio和SharpDevelop,甚至尝试了命令行),我得到的错误是“文档元素名称Wix'无效.Windows安装程序XML包含文件必须使用'包含'作为文档元素名称(CNDL0048) - C:\ WorkingDir \ anexmcmsetup.wxs:2“。我不知道如何解决这个错误。感谢您的即时帮助。谢谢!

+0

什么命令行被用来生成heat.exe的wxs文件? – 2011-06-07 07:39:42

我对包含的xws-File有同样的错误信息。我将此文件的编译操作从“编译”更改为“无”,错误消失。

我也有类似的问题,这是因为我没有正确地实现碎片......

片段的一个很好的基本解释可以在这里找到...

http://wix.tramontana.co.hu/tutorial/upgrades-and-modularization/fragments

在我的例子中

在我的具体情况我已经拆分我的安装程序到两个wxs文件。

  1. Product.wxs - 主要XML文件)
  2. FilesFragment.wxs - 含有从我得到的热量中的所有文件)的XML文件。

我出错的地方是我想我需要在Product.wxs中包含一些引用FilesFragment.wxs的包含引用。与你在C++项目中的做法类似。比如我认为,如果我想包括在叫我的主要安装wixfile.wxs一个额外的WXS文件,我需要某种形式的

<?include wixfile.wxs?>

这是一个不正确的假设。这种关系是在你的项目文件中建立的(以.wixproj结尾),凭借它,它知道文件存在。

在Product.wxs文件中,我需要设置一个具有ComponentGroupRef的功能,该功能的Id在我的FilesFragment.wxs文件中引用了ComponentGroup ID。

的文件内容示例...

Product.wxs文件

<Feature Id="ProductFeature" Title="Setup MaxCut" Level="1"> 
    <ComponentGroupRef Id="FilesFragment" /> 
</Feature> 

FilesFragment.wxs文件

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Fragment> 
    <DirectoryRef Id="APPLICATIONFOLDER"> 
     <Component Id="xyz" Guid="{abc...}"> 
      <File ... /> 
     </Component> 
    ...  
    </DirectoryRef> 
</Fragment> 
... 

<Fragment> 
    <ComponentGroup Id="FilesFragment"> 
     <ComponentRef Id="xyz" /> 
    </ComponentGroup> 
</Fragment> 

这个成就我需要。我认为这也是你想要做的?