将要素移动到片段会引发错误

时间:2015-03-26 15:59:26

标签: wix

我是WiX的新手,但我有一个问题我无法弄明白。我有以下代码"安装"很好(基本上它只是将一个文本文件添加到Program Files文件夹中)。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="WixTemplate" Language="1033" Version="1.0.0.0" Manufacturer="My Company" UpgradeCode="d7c4cfc2-4e50-4002-9273-e900112e2b03">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate EmbedCab="yes"/>
    <Feature Id="ProductFeature" Title="WixTemplate" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
    </Feature>
  </Product>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="WixTemplate" />
      </Directory>
    </Directory>
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <Component Id="TextFileComponent">
        <File Id="FooTxt" Source="foo.txt" />
      </Component>
    </ComponentGroup>
  </Fragment>

</Wix>

但是,如果我将功能部分移动到其自己的Fragment,它编译得很好,但是当我使用日志记录运行它时,它会失败并显示整体&#34;安装成功或错误状态: 1603&#34;并且第一个错误值为3表示&#34;注意:1:2205 2:3:ActionText&#34;意味着找不到ActionText表。

以下是无法安装的代码:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="WixTemplate" Language="1033" Version="1.0.0.0" Manufacturer="Blue Ribbon Technologies, LLC" UpgradeCode="d7c4cfc2-4e50-4002-9273-e900112e2b03">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate EmbedCab="yes"/>
  </Product>

  <Fragment>
    <Feature Id="ProductFeature" Title="WixTemplate" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
    </Feature>
  </Fragment>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="WixTemplate" />
      </Directory>
    </Directory>
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <Component Id="TextFileComponent">
        <File Id="FooTxt" Source="foo.txt" />
      </Component>
    </ComponentGroup>
  </Fragment>

</Wix>

那么功能部分有什么特别之处呢?它可以是组件目录的片段?

1 个答案:

答案 0 :(得分:2)

您的产品中没有任何内容引用该功能。 WiX不会在片段中链接,除非有东西引用其中的资源。将FeatureRef添加到您的产品中以引入功能,该功能又将拉入Component中的ComponentGroup。