WiX setup: adding a reference to Visual Studio project output issue

14,726

Solution 1

Currently Harvesting referenced project outputs does not work in Wix3.6 and will be added in Wix4.0

For now you will have to manually add the binary outputs into your project yourself (which I personally prefer anyway). For the examples below the Components will be named the same as their Child File elements (dotNetClass.Output and dotNetApp.Output).

<Component>
    <File Id="dotNetClass.Output"
          Name="$(var.dotNetClass.TargetFileName)"
          Source="$(var.dotNetClass.TargetPath)"
          KeyPath="yes" />
</Component>

<Component>
    <File Id="dotNetApp.Output"
          Name="$(var.dotNetApp.TargetFileName)"
          Source="$(var.dotNetApp.TargetPath)"
          KeyPath="yes" />
</Component>

Solution 2

As an alternative, you can use HarvestProject, HeatDirectory and HarvestDirectory MsBuild tasks:

These are needed to embedded into your *.wixproj file or you can create a separate MSBuild compatible proj file.

Share:
14,726

Related videos on Youtube

Dennis
Author by

Dennis

C# developer. Nowadays I mostly design/develop enterprise-level services and REST/SOAP APIs. From time to time still use XAML + MVVM.

Updated on September 15, 2022

Comments

  • Dennis
    Dennis over 1 year

    I'm trying to learn WiX and now creating sample setup project, using WiX Setup Project template for Visual Studio.

    I have a solution with three projects:

    • .net class library;
    • .net application, which uses class library;
    • WiX setup project.

    Of course, I want to add my first two projects' output as components to WiX setup.

    As described here and here (and as far, as I understand), adding a reference in WiX project and setting it Harvest property to True automatically adds a component for project's output.

    Now, I want to reference to this component in some Feature description.

    The questions:

    • what Id for ComponentRef should I use?
    • is this the correct way to reference VS projects' output?

    I'm using VS 2010 and WiX 3.6 RC.

  • Dennis
    Dennis over 11 years
    Thanks a lot! I've been added components manually... but then I've decided, that some automation in this process will be nice.
  • Christopher Painter
    Christopher Painter over 11 years
    FYI it's $(var.VisualStudioProjectName.MacroName). A project may have 0, 1 or many classes.
  • SOFKiNG
    SOFKiNG over 9 years
    how i can add 2 folders in directory to out put ? @caveman_dick
  • caveman_dick
    caveman_dick over 9 years
    @SOFKiNG I don't get what you mean. If the above question doesn't answer what you need you should ask a separate question yourself.