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“。我不知道如何解决这个错误。感谢您的即时帮助。谢谢!
我对包含的xws-File有同样的错误信息。我将此文件的编译操作从“编译”更改为“无”,错误消失。
我也有类似的问题,这是因为我没有正确地实现碎片......
片段的一个很好的基本解释可以在这里找到...
http://wix.tramontana.co.hu/tutorial/upgrades-and-modularization/fragments
在我的例子中
在我的具体情况我已经拆分我的安装程序到两个wxs文件。
- Product.wxs - 主要XML文件)
- 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>
这个成就我需要。我认为这也是你想要做的?
什么命令行被用来生成heat.exe的wxs文件? – 2011-06-07 07:39:42