I have this command in a post build event:
if $(ConfigurationName) == Release “$(SolutionDir)Tools\NuGet.exe” pack “$(ProjectDir)MyProject.Contracts.nuspec”
This works just fine when I compile in Visual Studio. But when my build runs this it fails. That is because someone somewhere thought it was a good idea to have builds on TFS not run the same as a build on a dev machine.
In this case it is the fact that all output files are grouped into a common “Binaries” folder.
So, my question is this:
Is there a property I can use (instead of ProjectDir) that will allow me to reference the output location of the build?
Meaning that it will point to the binaries folder when running a TFS build and point to my normal output when doing a normal Visual Studio based build.
I tried $(OutDir) but it equated to “bin\Release\”
UPDATE: I tried to use $(OutDir) but Visual Studio fails with the partial path it provides. Is there something that could be used with $(OutDir) to give a full path for both Visual Studio and TFS builds?
In case it matters:
- TFS version is TFS 2010 (Latest releases installed)
- Build Machine and Dev Machine are both running Windows 7 and VS 2010 Ulitmate
$(OutDir)should resolve to yourbin\debugorbin\releaseetc for local builds, on the build server this will be resolved to theBinariesfolder.So yes,
$(OutDir)should be the right one to use.