2014-09-27 4 views
10

Tracing a project was easy in MSBuild 4.0/VS2010, alles, was Sie tun mussten, war Registrierungsschlüssel, der eine Msbuild/Debug Befehlszeilenoption aktiviert. Der Debugger würde am Anfang der Projektdatei starten und brechen.Wie Debuggen einer Projektdatei in MSBuild 12.0/VS2013?

MSBuild 12 führt eine neue Umgebungsvariable ein. Legen Sie an der Eingabeaufforderung MSBUILDDEBUGONSTART = 1 fest und führen Sie dann MSBuild (keine Befehlszeilenoption) aus. Dies startet den Debugger, aber bricht nicht. Das Projekt wird gerade mit VS open abgeschlossen.

Fehle ich eine Einstellung? Oder wurde diese (undokumentierte) Funktion entfernt? Ich konnte den Debugger zumindest stoppen, indem ich in einer Debug-Pause hart codierte, aber das hilft mir nicht, die Projekt Datei zu verfolgen.

<?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> 

... 
+0

Dann dieselbe Person, die uns alle über das Feature ursprünglich erzählt? Entweder Sayed Ibrahim Hashimi oder Brian Kretzler. –

+0

Sie sollten Ihre Frage so umbenennen, dass der bekannte und korrekte Begriff * debugging * anstelle von * tracing * verwendet wird. Wenn eine Antwort angezeigt wird, ist sie durchsuchbar – stijn

+0

@ImaDirtyTroll Haben Sie jemals eine Lösung dafür gefunden? – stijn

Antwort

6

Fügen Sie den DebuggerEnabled Registrierungswert (mit Daten true) an folgende Taste (n) (der Schlüssel in der Post Blog veraltet ist).

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\12.0 (64-Bit-Systeme) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\12.0 (32-Bit-Systemen oder wenn irgendwie MSBuild 64-bit)

Siehe auch:

+0

Kann mir jemand bestätigen, dass das funktioniert? –

+1

Funktioniert für MSBuild 12.0, funktioniert nicht für 14.0. Irgendein neues Wissen darüber? –

+1

Gute Frage. Ich habe es gerade hier http://stackoverflow.com/q/42116865/704808 gefragt – weir

Verwandte Themen