WiX setup: adding a reference to Visual Studio project output issue
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.
Related videos on Youtube
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, 2022Comments
-
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 toTrue
automatically adds a component for project's output.Now, I want to reference to this component in some
Feature
description.The questions:
- what
Id
forComponentRef
should I use? - is this the correct way to reference VS projects' output?
I'm using VS 2010 and WiX 3.6 RC.
-
Dennis over 11 yearsThanks a lot! I've been added components manually... but then I've decided, that some automation in this process will be nice.
-
Christopher Painter over 11 yearsFYI it's $(var.VisualStudioProjectName.MacroName). A project may have 0, 1 or many classes.
-
SOFKiNG over 9 yearshow i can add 2 folders in directory to out put ? @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.