在MSBuild 4.0/VS2010中跟踪项目很简单,您只需设置注册表项即可启用msbuild/debug命令行选项.调试器将在项目文件的开头启动和中断.
MSBuild 12为此引入了一个新的环境变量.在命令提示符下,设置MSBUILDDEBUGONSTART = 1,然后运行MSBuild(无命令行开关).这将启动调试器,但不会中断.该项目在VS打开时运行完成.
我错过了一个设置吗?或者已删除此(未记录的)功能?我能够通过调试中断中的硬编码至少让调试器停止,但这无助于我跟踪项目文件.
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
InitialTargets="Init">
<UsingTask TaskName="LaunchDebugger"
TaskFactory="Microsoft.Build.Tasks.CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">
<ParameterGroup />
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
System.Console.WriteLine("Launching debugger...");
System.Diagnostics.Debugger.Launch();
]]>
</Code>
</Task>
</UsingTask>
<UsingTask TaskName="DebugBreak"
TaskFactory="Microsoft.Build.Tasks.CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">
<ParameterGroup />
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
System.Diagnostics.Debugger.Break();
]]>
</Code>
</Task>
</UsingTask>
<Target Name="Init">
<LaunchDebugger />
<DebugBreak />
</Target>
...
Run Code Online (Sandbox Code Playgroud) 我正在尝试调试使用msbuild的构建过程.我试图遵循这个文件.
我这样做是为了添加所需的注册表项
reg add HKLM\SOFTWARE\Microsoft\MSBuild\4.0 /v DebuggerEnabled /d true
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试msbuild.exe /?
我没有看到调试开关
C:\Program Files (x86)\Microsoft Visual Studio 11.0>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 …Run Code Online (Sandbox Code Playgroud)