2009-12-21 12 views
43

मेरे टी 4 टेम्पलेट्स कभी-कभी आउटपुट फ़ाइल में कोई संख्या क्यों जोड़ते हैं और कभी-कभी नहीं? उदाहरण के लिए, एक मामले में मेरे पास Foo.tt नामक टेम्पलेट फ़ाइल हो सकती है और मुझे Foo.cs की आउटपुट फ़ाइल मिल जाएगी। अन्य मामलों में, मुझे Foo1.cs की आउटपुट फ़ाइल मिल जाएगी। प्रत्येक मामले में, कोई अन्यFoo.cs फ़ाइल है जो इसे किसी संख्या को जोड़ने के कारण हो सकती है। दूसरे शब्दों में, यह निश्चित रूप से किसी भी स्पष्ट फ़ाइल नाम संघर्ष का परिणाम नहीं है।मेरा टी 4 टेम्पलेट फ़ाइल नाम पर एक संख्या क्यों संलग्न करता है?

मैं एक गहरा गुदा प्रतिरक्षी डेवलपर हूं, इसलिए मुझे यह जानना अच्छा लगेगा कि बेकार संख्यात्मक प्रत्यय से कैसे छुटकारा पाना है।

उत्तर

70

ऐसा तब होता है जब विजुअल स्टूडियो स्वयं भ्रमित हो जाता है और संक्षेप में यह निर्णय लेता है कि यह किसी कारण (आमतौर पर अस्पष्ट) के लिए आउटपुट के रूप में Foo.cs का उपयोग नहीं कर सकता है, इसलिए यह Foo1.cs का उपयोग करेगा, और फिर याद रखने पर जोर देता है यह सेटिंग

फ़िक्स एक टेक्स्ट एडिटर में .csproj फ़ाइल खोलने और Foo.tt प्रविष्टि का पता लगाने के लिए है। इसमें LastGenOutput नामक उप-तत्व होना चाहिए। इसे वापस Foo.cs पर बदलें, प्रोजेक्ट फ़ाइल को सहेजें, और उसे VS में फिर से खोलें।

और फिर - श्वास - फिर से होने के लिए प्रतीक्षा करें। अधिक जानकारी के लिए आप http://social.msdn.microsoft.com/Forums/en/linqtosql/thread/0c0f77a6-d712-43d2-a990-555df7960123 देख सकते हैं, हालांकि कोई भी इस स्थिति में वीएस को प्राप्त करने का कारण नहीं बताता है या इसे कैसे रोक सकता है ...

+0

धन्यवाद एक अरब! कम से कम यह एक शुरुआत है ... –

37

@ itowlson के उत्तर ने वास्तव में मेरी मदद की, लेकिन मुझे पता चला थोड़ा सा कामकाज जो मैंने सोचा था कि मैं साझा करूंगा।

यदि आपके पास:

Filename.tt 
└── Filename1.cs 

बस नाम बदलने Filename.ttFilename2.tt रहे हैं: करने के लिए Filename.tt फिर

Filename2.tt 
└── Filename2.cs 

और वापस:

Filename.tt 
└── Filename.cs 

Voilà।

+2

इस तरह स्वीकार्य उत्तर से इतना आसान है – lankyplanks

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