1

我在 WiX 中创建了一个带有单个 ComponentGroup、Component 和 File 的库,这样:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
  <ComponentGroup Id="MyComponentGroup" Directory="WindowsFolder">
    <Component Id="MyComponent" Guid="...">
      <File Id="MyFile" Source="file.txt" KeyPath="yes" />
    </Component>
  </ComponentGroup>
</Fragment>
</Wix>

然后我创建了一个 WiX 项目,添加了对该库的引用(作为项目引用),我正在使用以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="My Product" Language="1033"
         Version="1.0.0.0" Manufacturer="Myself"
         UpgradeCode="xxxxx">
  <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

  <Feature Id="Feature_Product" Title="Main Product"
         Level="1" Absent="disallow" Description="Core functionality.">
    <ComponentGroupRef Id="MyComponentGroup" />
  </Feature>
</Product>

<Fragment>
  <Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="WindowsFolder" />
  </Directory>
</Fragment>
</Wix>

但我收到一个错误Unresolved reference。有什么我想念的吗?还是库仅适用于 UI 而不适用于文件?

编辑:

我添加了完整的代码。

如果我使用 aFeatureRef并将其移到Feature库中,它会起作用,但我想将 Feature 保留在主项目中,并且只Component在库中使用。

4

1 回答 1

0

你还没有发布你的整个错误,但是我在使用你的例子时得到的错误是:

在“片段:”部分中未解决对符号“媒体:1”的引用

未解析的引用是缺少的媒体元素;文件需要存储在机柜中,默认情况下File/@DiskId="1"它正在寻找“Media:1”。您需要告诉 WiX 在哪里存储安装文件。如果您使用的是 WiX 3.7,请将其添加到您的<Package>元素中:

<MediaTemplate EmbedCab="yes" />

如果您使用的是早期版本:

<Media Id="1" Cabinet="Cab1.cab" EmbedCab="yes" />
于 2013-09-11T07:52:17.100 回答