Трассировка проекта была простой в 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>
...