Search code examples
wixmsbuild-projectreference

WiX properties RefProjectOutputGroups RefTargetDir


When referencing projects within WiX projects (*.wixproj) I often saw the code snippet

<ItemGroup>
  <ProjectReference Include="..\Foo.Bar\Foo.Bar.csproj">
    <Name>Foo.Bar</Name>
    <Project>{0bd367ce-5072-4161-8447-ff4deed97bd4}</Project>
    <Private>True</Private>
    <DoNotHarvest>True</DoNotHarvest>
    <RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
    <RefTargetDir>INSTALLLOCATION</RefTargetDir>
  </ProjectReference>
</ItemGroup>

Can anyone explain to me what the properties DoNotHarvest, RefProjectOutputGroups, and RefTargetDir mean? Or point to some documentation? I couldn't find anything explaining the meaning of these properties (including the WiX documentation).


Solution

  • Those are disabled features for automatic reference project harvesting. The feature is disabled because it was found to have many bugs.

    • When you change DoNotHarvest to false (double negatives are fun) the feature will sort of turn back on (but other things will be broken).
    • RefProjectOutputGroups lists the project outputs from the referenced project to include in a generated ComponentGroup.
    • RefTargetDir specifies the Directory that is used for all the generated Components.

    As noted above, it's not documented because the feature does not currently work.