$(SolutionDir) and MSBUILD


A while back I was working with a customer that was moving from doing all of their builds with the devenv command line to using MSBUILD.  However we ran into a hiccup that did not make sense at first.  Basically when they tried to build their solution using MSBUILD some of the custom build steps where failing because $(SolutionDir) was not defined. 

After thinking about it a bit is became clear that MSBUILD did not define the SolutionBuild property that Visual Studio does.  So where did that leave us?

There are a couple of basic approaches:

  1. Create a Custom Action (this would involve Custom Code) that walked up the directory structure and found the SLN file and then used that directory to create the SolutionDir.
  2. Use the command line option /Property:SolutionDir=<sln Dir> to set the value.  This way it is controlled in one place.
  3. Change all of the pathing to be relative.  In most groups it is relatively infrequent to be moving projects up and down the directory hierarchy.

Just thought I would share incase this comes up for someone else.

Zach

Comments (3)

  1. bnovc says:

    Using method two does not work for me with the v2 framework. It seems to just ignore my option.

  2. who is the sob unit goat humper who posted this worthless crapola aricle says:

    hey ZAKRAMER how long you been sticking the unit incher of your up a goats ahole

    rofl ZAKRAMER  is that name? sounds like something that comes out of a cows ahole

Skip to main content