Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to execute 'msbuild' command from a batch file

Tags:

I would like to create a batch file to make the builds from my VS project in on click. All the days I do the following steps:

  1. Opens a cmd console as administrador
  2. Go to the path of my project/solution (using the CD.., CD commands)
  3. Write the following command to make the build:

    msbuild mySolution.sln /p:configuration=debug

As commented before, I'd like to make all this process in one simply click. So, I'm trying to create a .bat file to do it.

This is the code of my batch file:

set location="C:\myPath\..\MyFolderSolution" set pathMSBuild = "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe"  @echo off cls  call %pathMSBuild% cd %location% msbuild.exe "lucre.sln" /p:configuration=debug pause 

However, when I try to execute the batch file I get the following error: 'msbuild' is not recognized as an internal or external command, operable program or batch file.

Any clue or help to know if it is possible and if so, how to do it will be very appreciate

Regards!

like image 616
MikePR Avatar asked Jul 23 '13 21:07

MikePR


People also ask

How do I run MSBuild from command prompt?

To run MSBuild at a command prompt, pass a project file to MSBuild.exe, together with the appropriate command-line options. Command-line options let you set properties, execute specific targets, and set other options that control the build process.

Can I use MSBuild without Visual Studio?

NET Framework 3.5 or later. MSBuild provides an easy way to build a release from the command line on a machine on which Visual Studio is not installed. The only components you must have installed on the machine are the . NET Framework and the InstallShield Standalone Build.

How do I run MSBuild target?

To build a specific target of a specific project in a solution. At the command line, type MSBuild.exe <SolutionName>. sln , where <SolutionName> corresponds to the file name of the solution that contains the target that you want to execute.


2 Answers

You're not in the right directory, you need to cd to the directory that msbuild is in. Try this:

set pathMSBuild="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\" @echo off cls cd %pathMSBuild% msbuild.exe "C:\myPath\..\MyFolderSolution\lucre.sln" /p:configuration=debug pause 

Or you could add the msbuild directory to your path, and skip the lines with set and cd.

like image 151
stevejoy32 Avatar answered Sep 17 '22 20:09

stevejoy32


You can also add the directory which MSBuild.exe is located, to the PATH environment variable so you can call msbuild anywhere.

So in the bat file it can be something like this:

cd C:\PathToSoultion\ msbuild TheSolutionName.sln /p:configuration=debug pause 

I know the question is already years away but I hope this might help someone.

like image 28
johnsabre Avatar answered Sep 16 '22 20:09

johnsabre