2014-09-27 19 views
10

Tracing a project was easy in MSBuild 4.0/VS2010, tất cả những gì bạn phải làm là đặt khóa đăng ký cho phép tùy chọn dòng lệnh msbuild/debug. Trình gỡ lỗi sẽ khởi chạy và bẻ khóa khi bắt đầu tệp dự án.Làm thế nào để gỡ lỗi một tệp dự án trong MSBuild 12.0/VS2013?

MSBuild 12 giới thiệu một biến môi trường mới cho việc này. Tại dấu nhắc lệnh, thiết lập MSBUILDDEBUGONSTART = 1 và sau đó chạy MSBuild (không có chuyển đổi dòng lệnh). Thao tác này sẽ khởi chạy trình gỡ lỗi, nhưng không bị ngắt. Dự án chỉ chạy để hoàn thành với VS mở.

Tôi có thiếu cài đặt không? Hoặc tính năng này (không có giấy tờ) đã bị xóa? Tôi đã có thể ít nhất có được trình gỡ lỗi để ngăn chặn bằng cách mã hóa cứng trong một phá vỡ gỡ lỗi, nhưng điều này không giúp tôi theo dõi các dự án tập tin.

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

Sau đó, cùng một người đã kể cho chúng tôi tất cả về tính năng ban đầu? Hoặc là nói Ibrahim Hashimi hoặc Brian Kretzler. –

+0

Bạn nên đổi tên câu hỏi của mình để sử dụng thuật ngữ nổi tiếng và chính xác * gỡ lỗi * thay vì * theo dõi * để nếu câu trả lời có thể tìm kiếm được – stijn

+0

@ImaDirtyTroll Bạn đã bao giờ tìm thấy giải pháp cho điều này chưa? – stijn

Trả lời

6

Thêm giá trị DebuggerEnabled registry (với dữ liệu true) đến khóa sau đây (s) (chìa khóa trong bài viết trên blog là lỗi thời).

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\12.0 (hệ thống 64-bit) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\12.0 (hệ thống 32-bit, hoặc nếu bằng cách nào đó chạy MSBuild 64-bit)

Xem thêm:

+0

Có ai có thể xác nhận điều này có hiệu quả không? –

+1

Làm việc cho MSBuild 12.0, không hoạt động với tôi cho 14.0. Bất kỳ kiến ​​thức mới về điều đó? –

+1

Câu hỏi hay. Tôi vừa hỏi ở đây http://stackoverflow.com/q/42116865/704808 – weir

Các vấn đề liên quan