title: Unable to debug msbuild
body: <p>I am trying to debug a build process that uses msbuild. I am trying to follow <a href="http://blogs.msdn.com/b/visualstudio/archive/2010/07/06/debugging-msbuild-script-with-visual-studio.aspx" rel="noreferrer">this</a> document.</p>
  
  <p>I did this to add the required registry key</p>
  
  <pre><code>reg add HKLM\SOFTWARE\Microsoft\MSBuild\4.0 /v DebuggerEnabled /d true
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/qjS7H.png" alt="enter image description here"></p>
  
  <p>However when I try 
  msbuild.exe/?</p>
  
  <p>I do not see a debug switch</p>
  
  <pre><code>C:\Program Files (x86)\Microsoft Visual Studio 11.0&gt;msbuild.exe /?
  Microsoft (R) Build Engine version 4.0.30319.17929
  [Microsoft .NET Framework, version 4.0.30319.18063]
  Copyright (C) Microsoft Corporation. All rights reserved.
  
  Syntax:              MSBuild.exe [options] [project file]
  
  Description:         Builds the specified targets in the project file. If
                       a project file is not specified, MSBuild searches the
                       current working directory for a file that has a file
                       extension that ends in "proj" and uses that file.
  
  Switches:
  
    /target:&lt;targets&gt;  Build these targets in this project. Use a semicolon or a
                       comma to separate multiple targets, or specify each
                       target separately. (Short form: /t)
                       Example:
                         /target:Resources;Compile
  
    /property:&lt;n&gt;=&lt;v&gt;  Set or override these project-level properties. &lt;n&gt; is
                       the property name, and &lt;v&gt; is the property value. Use a
                       semicolon or a comma to separate multiple properties, or
                       specify each property separately. (Short form: /p)
                       Example:
                         /property:WarningLevel=2;OutDir=bin\Debug\
  
    /maxcpucount[:n]   Specifies the maximum number of concurrent processes to
                       build with. If the switch is not used, the default
                       value used is 1. If the switch is used without a value
                       MSBuild will use up to the number of processors on the
                       computer. (Short form: /m[:n])
  
    /toolsversion:&lt;version&gt;
                       The version of the MSBuild Toolset (tasks, targets, etc.)
                       to use during build. This version will override the
                       versions specified by individual projects. (Short form:
                       /tv)
                       Example:
                         /toolsversion:3.5
  
    /verbosity:&lt;level&gt; Display this amount of information in the event log.
                       The available verbosity levels are: q[uiet], m[inimal],
                       n[ormal], d[etailed], and diag[nostic]. (Short form: /v)
                       Example:
                         /verbosity:quiet
  
    /consoleloggerparameters:&lt;parameters&gt;
                       Parameters to console logger. (Short form: /clp)
                       The available parameters are:
                          PerformanceSummary--Show time spent in tasks, targets
                              and projects.
                          Summary--Show error and warning summary at the end.
                          NoSummary--Don't show error and warning summary at the
                              end.
                          ErrorsOnly--Show only errors.
                          WarningsOnly--Show only warnings.
                          NoItemAndPropertyList--Don't show list of items and
                              properties at the start of each project build.
                          ShowCommandLine--Show TaskCommandLineEvent messages
                          ShowTimestamp--Display the Timestamp as a prefix to any
                              message.
                          ShowEventId--Show eventId for started events, finished
                              events, and messages
                          ForceNoAlign--Does not align the text to the size of
                              the console buffer
                          DisableConsoleColor--Use the default console colors
                              for all logging messages.
                          DisableMPLogging-- Disable the multiprocessor
                              logging style of output when running in
                              non-multiprocessor mode.
                          EnableMPLogging--Enable the multiprocessor logging
                              style even when running in non-multiprocessor
                              mode. This logging style is on by default.
                          Verbosity--overrides the /verbosity setting for this
                              logger.
                       Example:
                          /consoleloggerparameters:PerformanceSummary;NoSummary;
                                                   Verbosity=minimal
  
    /noconsolelogger   Disable the default console logger and do not log events
                       to the console. (Short form: /noconlog)
  
    /fileLogger[n]     Logs the build output to a file. By default
                       the file is in the current directory and named
                       "msbuild[n].log". Events from all nodes are combined into
                       a single log. The location of the file and other
                       parameters for the fileLogger can be specified through
                       the addition of the "/fileLoggerParameters[n]" switch.
                       "n" if present can be a digit from 1-9, allowing up to
                       10 file loggers to be attached. (Short form: /fl[n])
  
    /fileloggerparameters[n]:&lt;parameters&gt;
                       Provides any extra parameters for file loggers.
                       The presence of this switch implies the
                       corresponding /filelogger[n] switch.
                       "n" if present can be a digit from 1-9.
                       /fileloggerparameters is also used by any distributed
                       file logger, see description of /distributedFileLogger.
                       (Short form: /flp[n])
                       The same parameters listed for the console logger are
                       available. Some additional available parameters are:
                          LogFile--path to the log file into which the
                              build log will be written.
                          Append--determines if the build log will be appended
                              to or overwrite the log file. Setting the
                              switch appends the build log to the log file;
                              Not setting the switch overwrites the
                              contents of an existing log file.
                              The default is not to append to the log file.
                          Encoding--specifies the encoding for the file,
                              for example, UTF-8, Unicode, or ASCII
                       Default verbosity is Detailed.
                       Examples:
                         /fileLoggerParameters:LogFile=MyLog.log;Append;
                                             Verbosity=diagnostic;Encoding=UTF-8
  
                         /flp:Summary;Verbosity=minimal;LogFile=msbuild.sum
                         /flp1:warningsonly;logfile=msbuild.wrn
                         /flp2:errorsonly;logfile=msbuild.err
  
    /distributedlogger:&lt;central logger&gt;*&lt;forwarding logger&gt;
                       Use this logger to log events from MSBuild, attaching a
                       different logger instance to each node. To specify
                       multiple loggers, specify each logger separately.
                       (Short form /dl)
                       The &lt;logger&gt; syntax is:
                         [&lt;logger class&gt;,]&lt;logger assembly&gt;[;&lt;logger parameters&gt;]
                       The &lt;logger class&gt; syntax is:
                         [&lt;partial or full namespace&gt;.]&lt;logger class name&gt;
                       The &lt;logger assembly&gt; syntax is:
                         {&lt;assembly name&gt;[,&lt;strong name&gt;] | &lt;assembly file&gt;}
                       The &lt;logger parameters&gt; are optional, and are passed
                       to the logger exactly as you typed them. (Short form: /l)
                       Examples:
                         /dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral
                         /dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll
  
    /distributedFileLogger
                       Logs the build output to multiple log files, one log file
                       per MSBuild node. The initial location for these files is
                       the current directory. By default the files are called
                       "MSBuild&lt;nodeid&gt;.log". The location of the files and
                       other parameters for the fileLogger can be specified
                       with the addition of the "/fileLoggerParameters" switch.
  
                       If a log file name is set through the fileLoggerParameters
                       switch the distributed logger will use the fileName as a
                       template and append the node id to this fileName to
                       create a log file for each node.
  
    /logger:&lt;logger&gt;   Use this logger to log events from MSBuild. To specify
                       multiple loggers, specify each logger separately.
                       The &lt;logger&gt; syntax is:
                         [&lt;logger class&gt;,]&lt;logger assembly&gt;[;&lt;logger parameters&gt;]
                       The &lt;logger class&gt; syntax is:
                         [&lt;partial or full namespace&gt;.]&lt;logger class name&gt;
                       The &lt;logger assembly&gt; syntax is:
                         {&lt;assembly name&gt;[,&lt;strong name&gt;] | &lt;assembly file&gt;}
                       The &lt;logger parameters&gt; are optional, and are passed
                       to the logger exactly as you typed them. (Short form: /l)
                       Examples:
                         /logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral
                         /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML
  
    /validate          Validate the project against the default schema. (Short
                       form: /val)
  
    /validate:&lt;schema&gt; Validate the project against the specified schema. (Short
                       form: /val)
                       Example:
                         /validate:MyExtendedBuildSchema.xsd
  
    /ignoreprojectextensions:&lt;extensions&gt;
                       List of extensions to ignore when determining which
                       project file to build. Use a semicolon or a comma
                       to separate multiple extensions.
                       (Short form: /ignore)
                       Example:
                         /ignoreprojectextensions:.sln
  
    /nodeReuse:&lt;parameters&gt;
                       Enables or Disables the reuse of MSBuild nodes.
                       The parameters are:
                       True --Nodes will remain after the build completes
                              and will be reused by subsequent builds (default)
                       False--Nodes will not remain after the build completes
                       (Short form: /nr)
                       Example:
                         /nr:true
  
    /preprocess[:file]
                       Creates a single, aggregated project file by
                       inlining all the files that would be imported during a
                       build, with their boundaries marked. This can be
                       useful for figuring out what files are being imported
                       and from where, and what they will contribute to
                       the build. By default the output is written to
                       the console window. If the path to an output file
                       is provided that will be used instead.
                       (Short form: /pp)
                       Example:
                         /pp:out.txt
  
    /detailedsummary
                       Shows detailed information at the end of the build
                       about the configurations built and how they were
                       scheduled to nodes.
                       (Short form: /ds)
  
    @&lt;file&gt;            Insert command-line settings from a text file. To specify
                       multiple response files, specify each response file
                       separately.
  
                       Any response files named "msbuild.rsp" are automatically
                       consumed from the following locations:
                       (1) the directory of msbuild.exe
                       (2) the directory of the first project or solution built
  
    /noautoresponse    Do not auto-include any MSBuild.rsp files. (Short form:
                       /noautorsp)
  
    /nologo            Do not display the startup banner and copyright message.
  
    /version           Display version information only. (Short form: /ver)
  
    /help              Display this usage message. (Short form: /? or /h)
  
  Examples:
  
          MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
          MSBuild MyApp.csproj /t:Clean
                               /p:Configuration=Debug;TargetFrameworkVersion=v3.5
  
  
  C:\Program Files (x86)\Microsoft Visual Studio 11.0&gt;
  </code></pre>
  
  <p>What am I doing wrong?</p>