2010-05-31 8 views
16

मैं कुछ साल पहले Oleg Sych published दिशाओं का उपयोग कर ADO.NET POCO इकाई जेनरेटर टेम्पलेट का थोड़ा-संशोधित संस्करण डीबग करने का प्रयास कर रहा हूं। मैंने अनुशंसित DbgJITDebugLaunchSetting कुंजी को संशोधित किया।वीएस 2010 क्रैश में टी 4 टेम्पलेट डिबगिंग आईडीई

मुझे एक संवाद मिलता है जो दर्शाता है कि उपयोगकर्ता द्वारा परिभाषित ब्रेकपॉइंट मारा गया है। हालांकि, वीएस 2010 के नए उदाहरण के साथ डीबग करने के विकल्प के साथ पेश किए जाने के बजाय, वीएस 2010 का मूल उदाहरण केवल क्रैश और ऑटो-रीस्टार्ट करता है।

क्या वीएस 2010 के साथ टी 4 टेम्पलेट्स डीबग करना संभव है?

उत्तर

15

विजुअल स्टूडियो 2010 में आपको डीबगर से पहले डीबगर। लॉन्च() को कॉल करने की आवश्यकता है। ब्रेक()।

+0

कि यह जहाँ तक एक नया डिबगर उदाहरण की शुरूआत के रूप में किया था, लेकिन अब मैं कोई स्रोत मिल कॉल स्टैक स्थान के लिए उपलब्ध है: * 13gocwvx Microsoft.VisualStudio.TextTemplating9936422A04D1D8AC631D9CB3A394DD16.GeneratedTextTransformation.TransformText() + 0x34 बाइट्स * किसी भी विचार।? –

+0

स्वीकार करना क्योंकि यह आंशिक रूप से सही था, लेकिन मुझे अभी भी उपरोक्त त्रुटि मिलती है। –

2

तुम भी डिबग = सच की जरूरत है:

< @ # टेम्पलेट डिबग = "true" #> System.Diagnostics.Debugger.Launch(); डीबगर। ब्रेक();

http://msdn.microsoft.com/en-us/library/bb126338.aspx

+0

धन्यवाद, मैंने पहले से ही डीबग सेट किया है। –

3

अंतिम समाधान जो मेरे लिए काम करता है:

regedit:

कुंजी (86 सिस्टम): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

कुंजी (64 सिस्टम): HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework

मूल्य: DbgJITDebugLaunchSetting

डेटा: 0x2

टीटी टेम्पलेट:

<#@ template debug="true" hostSpecific="true" #> 
<# System.Diagnostics.Debugger.Launch(); System.Diagnostics.Debugger.Break(); #> 
7
इसके बजाय System.Diagnostics.Debugger.Launch का उपयोग करने का

(); या ब्रेक(), मैन्युअल रूप से डीबगर संलग्न करें।

  1. VS2010 का एक दूसरा उदाहरण में, आप डिबग करना चाहते हैं टी -4 टेम्पलेट खोलने (बस .tt फ़ाइल ठीक है)
  2. डीबग करने के लिए
  3. जाओ -> प्रक्रिया को संलग्न करें और मूल devenv.exe लगता है प्रक्रिया
  4. जगह आप डिबग, मूल VS2010 को
  5. जाओ शुरू करने के लिए (दूसरी VS2010 अभी भी में) .tt फ़ाइल को सहेजने और चाहते हैं के लिए एक नियमित ब्रेकप्वाइंट (लाल गेंद) जोड़े .. बिंगो! बनाम 2010 का दूसरा उदाहरण आपके टेम्पलेट को डीबग करेगा।
1

अगर आप फ़ाइल को सहेजते हैं, तो एंड्रैक्लुसी के समाधान में जोड़ने के लिए, आपको इसे डिबग करने से पहले विजुअल स्टूडियो के दूसरे उदाहरण में इसे पुनः लोड करने के लिए कहा जाएगा। यदि आपको और परिवर्तन करने की आवश्यकता नहीं है, लेकिन इसे कई बार डीबग करने की आवश्यकता है, तो आपको कोड में तोड़ने के लिए हर बार सहेजने की ज़रूरत नहीं है। आप विजुअल स्टूडियो के मूल उदाहरण में समाधान एक्सप्लोरर टूलबार पर बस सभी टेम्पलेट्स को ट्रांसफॉर्म पर क्लिक कर सकते हैं।