2010-05-31 6 views
16

Tôi đang cố gắng gỡ lỗi phiên bản được sửa đổi một chút của mẫu ADO.NET POCO Entity Generator bằng cách sử dụng chỉ đường Oleg Sych published một vài năm trước. Tôi đã sửa đổi khóa DbgJITDebugLaunchSetting như được đề xuất.Gỡ mẫu T4 trong VS 2010 Crashes IDE

Tôi nhận được một hộp thoại cho biết rằng điểm ngắt do người dùng xác định đã bị trúng. Tuy nhiên, thay vì được trình bày với tùy chọn gỡ lỗi với phiên bản mới của VS 2010, phiên bản gốc của VS 2010 chỉ bị treo và tự động khởi động lại.

Có thể gỡ lỗi các mẫu T4 với VS 2010 không?

Trả lời

15

trong Visual Studio 2010 bạn cần gọi Debugger.Launch() trước Debugger.Break().

+0

Điều đó đã làm điều đó như xa như tung ra một trường hợp trình gỡ lỗi mới, nhưng bây giờ tôi nhận được Không có nguồn có sẵn cho vị trí ngăn xếp cuộc gọi: * 13gocwvx! Microsoft.VisualStudio.TextTemplating9936422A04D1D8AC631D9CB3A394DD16.GeneratedTextTransformation.TransformText() + 0x34 bytes. * Mọi suy nghĩ? –

+0

Chấp nhận vì nó đã chính xác một phần, nhưng tôi vẫn gặp lỗi trên. –

3

giải pháp cuối cùng mà làm việc cho tôi:

regedit:

Key (hệ thống x86): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

Key (hệ thống x64): HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework

giá trị: DbgJITDebugLaunchSetting

dữ liệu: 0x2

tt mẫu:

<#@ template debug="true" hostSpecific="true" #> 
<# System.Diagnostics.Debugger.Launch(); System.Diagnostics.Debugger.Break(); #> 
7

Thay vì sử dụng System.Diagnostics.Debugger.Launch(); hoặc Break(), đính kèm trình gỡ rối theo cách thủ công.

  1. Trong một trường hợp thứ hai của VS2010, mở mẫu T4 bạn muốn debug (chỉ các tập tin .tt là tốt)
  2. Đến Debug -> Đính kèm để xử lý và tìm ra devenv.exe gốc quá trình
  3. Thêm một thường xuyên breakpoint (bóng màu đỏ) đến nơi bạn muốn bắt đầu debug (trong lần thứ hai VS2010 vẫn)
  4. đến bản gốc VS2010, lưu tập tin .tt và .. bingo! Ví dụ thứ hai của vs2010 sẽ gỡ lỗi mẫu của bạn.
1

Để thêm vào giải pháp của andrecarlucci, nếu bạn lưu tệp, bạn sẽ được nhắc tải lại nó trong trường hợp thứ hai của Visual Studio trước khi bạn có thể gỡ lỗi. Nếu bạn không cần phải thực hiện thêm thay đổi nhưng cần gỡ lỗi nhiều lần, bạn không phải lưu mọi thời gian để đột nhập vào mã. Bạn có thể chỉ cần nhấp vào nút Transform All Templates trên thanh công cụ Solution Explorer trong phiên bản gốc của Visual Studio.