VS2017

2017-04-03 10 views
11

में टी -4 टेम्पलेट डिबगिंग नहीं कर सकते VS2017 समुदाय में, मैं टी -4 टेम्पलेट्स, जो 2015VS2017

में काम करता है मैं इस जैसे एक बहुत ही बुनियादी टेम्पलेट है, डिबग नहीं कर सकते हैं ...

<#@ template debug="true" hostspecific="false" language="C#" #> 
<#@ output extension=".txt" #> 
<# 
var a = "Hello"; 
var b = "World"; 
#> 
<#=($"{a} {b}!")#> 

Run Custom Tool और Transform All T4 Templates दोनों विकल्प काम करते हैं, और टेक्स्ट फ़ाइल में अपेक्षित आउटपुट

हैलो वर्ल्ड!

अगर मैं कहीं ब्रेकप्वाइंट रख दिया और .tt के संदर्भ मेनू से Debug T4 Template उपयोग करें, यह इस त्रुटि

परिवर्तन रन बनाने की प्रक्रिया प्रारंभ करने में अक्षम फेंकता है।

हालांकि यह वीएस 2015 में ठीक काम करता है, और मैं वहां डीबग करने में सक्षम हूं।

मुझे क्या याद आ रहा है? वीएस 2017 में टी 4 टेम्पलेट्स को डीबग कैसे करें? ध्यान दें कि मेरे पास टी 4

+2

आगामी रिलीज में फिक्स्ड। एरियल वांग से टिप्पणी देखें। https://developercommunity.visualstudio.com/content/problem/46721/unable-to-debug-t4-text-template-in-vs2017.html –

उत्तर

5

डीबग करने के लिए VS2015 में कोई टूल/एक्सटेंशन इंस्टॉल नहीं है, मुझे एक ही समस्या है, मुझे नहीं पता कि यह इस तरह से क्यों काम नहीं करता है लेकिन मेरे पास एक काम है।

सेट को सही पर डिबग, और जोड़ने के नैदानिक ​​नाम स्थान

<#@ template language="C#" debug="true" #> 
<#@ import namespace="System.Diagnostics" #> 

अपने टी -4 टेम्पलेट में लिखने

Debugger.Launch(); 

फिर अपने टेम्पलेट (यह सिर्फ इसे सहेजने के लिए सबसे आसान तरीका है) चलाने के लिए और यह पूछना होगा यदि आप विजुअल स्टूडियो के एक नए उदाहरण में डीबग करना चाहते हैं।

+1

धन्यवाद @Rezonir, डिबगर पता चलता है कि अगर मैं तुम क्या उल्लेख किया है करते हैं, लेकिन यह असुविधाजनक है और मेरे असली प्रोजेक्ट के साथ अच्छी तरह से काम नहीं करता है जहां मुझे सशर्त ब्रेकपॉइंट्स डालने और कुछ चर देखने की ज़रूरत है। – Raheel

+1

उल्लेख करने के लिए कि "डीबगर। लॉन्च();" अपने टी 4 टेम्पलेट में से एक के अंदर होना चाहिए "<# डीबगर। लॉन्च(); #>" नोड्स। –

+1

इसका एक वीडियो यहां काम कर रहा है। https://youtu.be/U2NzQqghu_A कभी-कभार यह कहेंगे 'डिबगर आपके द्वारा चयनित शुरू नहीं किया जा सकता है। क्या आप एक और चुनना चाहते हैं? 'हाँ कहें और आपको फिर से विजुअल स्टूडियो का उपयोग करने के लिए कहा जाएगा और इसे दूसरी कोशिश पर काम करना चाहिए। मैंने पाया है कि जब तक आप विजुअल स्टूडियो को पुनरारंभ नहीं करेंगे तब तक यह तब तक नहीं होगा। –

3

सबसे आसान समाधान यह है कि इन दो पंक्तियों को अपने टी 4 टेम्पलेट के शीर्ष पर जोड़ें।

<#@ template debug="true" hostspecific="false" language="C#" #> 
<# System.Diagnostics.Debugger.Launch(); #> 

फिर फ़ाइल को सहेजकर टेम्पलेट चलाएं और दृश्य स्टूडियो आपको एक नए उदाहरण में डीबग करने के लिए संकेत देगा।

आप अपने टेम्पलेट में होस्ट का उपयोग करें और प्राप्त होने वाले त्रुटि The name 'Host' does not exist in the current context तो सेट `hostspecific =" true " 'है।

संबंधित मुद्दे