2009-03-10 11 views
8

वहाँ किसी भी तरह से पता लगाने के लिए अगर एक विधानसभा विधानसभा को संशोधित किए बिना ट्रेस या डीबग ध्वज सेट के साथ संकलित किया गया है है के साथ संकलित किया गया था?कैसे पता लगाने के लिए अगर एक .NET विधानसभा ट्रेस या डीबग ध्वज

+0

: मैं पर अपने ब्लॉग पर सही कार्यान्वयन प्रदान की है? Stackoverflow में – StingyJack

+0

समानता सवाल, एक सवाल है, और कई, कई अलग अलग जवाब: http://stackoverflow.com/questions/654450/programatically-detecting-release-debug-mode-net http: // stackoverflow। com/प्रश्न/798,971/कैसे करने वाली idenfiy-अगर-dll-है-डिबग या रिहाई-बिल्ट-इन-शुद्ध http://stackoverflow.com/questions/194616/how-to-tell -यदि निवल एप्लिकेशन-गया था संकलित-इन-डिबग या रिहाई मोड http://stackoverflow.com/questions/50900/best-way-to-detect-a-release-build-from- एक-डिबग-निर्माण शुद्ध http://stackoverflow.com/questions/890459/asp-net-release-build-vs-debug-build – Kiquenet

उत्तर

2
static bool IsDebug(){ 
bool rv = false; 
#if DEBUG 
rv = true; 
#endif 
return rv; 
} 
+0

खैर धन्यवाद, लेकिन मैं के लिए देख रहा हूँ असेंबली को संशोधित किए बिना पता लगाने का एक तरीका है। मैं कुछ कमांड लाइन उपकरण के साथ अधिमानतः पहले से संकलित असेंबली का निरीक्षण करना चाहता हूं। – Ralf

1

शायद कोई सामान्य तरीका नहीं है। हालांकि, आप System.Diagnostics नामस्थान से Assert और Debug के संदर्भों को देख सकते हैं। उनमें से उपस्थिति इंगित करेगी कि DEBUG ध्वज सेट किया गया था।

ही Trace और ट्रेस ध्वज के लिए आयोजित करता है।

स्पष्ट रूप से यह काम नहीं करेगा अगर स्रोत कोड इन नामस्थानों के प्रकारों का उपयोग नहीं करता है। स्कॉट हंसेलमैन से

3

सीधा लिंक उपयोग निर्देशों के साथ।

5

करने का एकमात्र सबसे अच्छा तरीका संकलित असेंबली स्वयं ही जांचना है। '.NET असेंबली सूचना' नामक यह बहुत उपयोगी टूल है here रोटेम ब्लूम द्वारा पाया गया। इसे स्थापित करने के बाद यह .dll फ़ाइलों को स्वयं के साथ खोलने के लिए अलग करता है। इंस्टॉलेशन के बाद आप इसके साथ खोलने के लिए असेंबली पर डबल-क्लिक कर सकते हैं और यह आपको स्क्रीनशॉप में प्रदर्शित असेंबली विवरण देगा। वहां आप यह पहचान सकते हैं कि यह डिबग किया गया है या नहीं।

alt text http://ruchitsurati.net/myfiles/asm_info.jpg

alt text http://ruchitsurati.net/myfiles/release_assembly.PNG

LinkText: http://www.codeplex.com/AssemblyInformation

0

"IsDebug" जैसा कि ऊपर उल्लेख अनुप्रयोग, वास्तव में यह में एक बग जहां यह सही DubuggableAttributes पर प्रतिबिंबित नहीं करता है। यह गलत तरीके से मानता है कि यदि डिबग्रेबलएट्रिब्यूट मौजूद है, तो असेंबली जेआईटी अनुकूलित नहीं है।

How to Tell if an Assembly is Debug or Release

के साथ या विधानसभा में कोड जोड़ने के बिना
संबंधित मुद्दे