क्या कोई चर या प्रीप्रोसेसर स्थिर है जो यह जानने की अनुमति देता है कि कोड विजुअल स्टूडियो के संदर्भ में निष्पादित किया गया है?यह पता लगाने के लिए कि सी # विंडोज फॉर्म कोड विजुअल स्टूडियो के भीतर निष्पादित किया गया है?
उत्तर
प्रयास करें Debugger.IsAttached या DesignMode संपत्ति या ProcessName या एक संयोजन मिलता है, के रूप में उपयुक्त
Debugger.IsAttached // or
LicenseUsageMode.Designtime // or
System.Diagnostics.Process.GetCurrentProcess().ProcessName
यहाँ एक sample
public static class DesignTimeHelper {
public static bool IsInDesignMode {
get {
bool isInDesignMode = LicenseManager.UsageMode == LicenseUsageMode.Designtime || Debugger.IsAttached == true;
if (!isInDesignMode) {
using (var process = Process.GetCurrentProcess()) {
return process.ProcessName.ToLowerInvariant().Contains("devenv");
}
}
return isInDesignMode;
}
}
}
डीबगर के लिए +1.एएसएटेड –
प्रक्रिया पर पागल मेमोरी रिसाव को न भूलें। GetCurrentProcess() – Neil
का निपटान करना याद रखें मेरे कोड में, मैंने यह जानने के लिए एक स्थिर बूल वैरिएबल जोड़ा है जब IsInDesignMode को बुलाया गया था और दूसरा समारोह के परिणाम को पकड़ने के लिए।समारोह की शुरुआत में, मैं पहली कॉल का परिणाम वापस कर देता हूं। इसके साथ, फ़ंक्शन का भीतरी डिज़ाइन समय में एक बार और रनटाइम पर एक बार कॉल किया जाता है। मुझे कोई संघर्ष नहीं दिख रहा है जहां डिज़ाइन का समय रनटाइम के साथ विलय हो जाता है और जब आपके पास इस फ़ंक्शन में बड़ी संख्या में कॉल होते हैं तो यह बहुत तेज़ होता है। – Samuel
एक डिज़ाइनमोड प्रॉपर्टी है जिसे आप चेक कर सकते हैं लेकिन मेरे अनुभव में यह हमेशा सटीक नहीं होता है। आप यह देखने के लिए भी जांच सकते हैं कि निष्पादन योग्य है DevEnv.exe
look here लें। यह सवाल एक डुप्लिकेट कर सकता है लेकिन यह सब उस पर निर्भर करता है जो आप पूरा करने की कोशिश कर रहे हैं।
घटक के लिए DesignMode
संपत्ति है। यह आसान है जब आप वीएस के डिजाइन व्यूअर का उपयोग करते हैं।
लेकिन जब आप विजुअल स्टूडियो में डिबगिंग के बारे में बात करते हैं तो आपको Debugger.IsAttached
संपत्ति का उपयोग करने की आवश्यकता होती है। उसके बाद, आप मौजूदा प्रक्रिया की जांच करने के लिए उपयोग कर सकते
#if DEBUG
#endif
भी
+ 1 Deugger.IsAttached –
मुझे लगता है कि अगर आपके एक्सटेंशन में WinForms डिजाइनर में निष्पादित किया जाता है निर्धारित करने के लिए सबसे आसान और सबसे विश्वसनीय तरीका है।
public static bool InVisualStudio() {
return StringComparer.OrdinalIgnoreCase.Equals(
"devenv",
Process.CurrentProcess.ProcessName);
}
मैं चाहे वह दृश्य में चल रहा है भेद करने के लिए इस कोड का उपयोग है स्टूडियो या अगर यह ग्राहकों को तैनात किया जाता है।
if (ApplicationDeployment.IsNetworkDeployed) {
// do stuff
} else {
// do stuff (within Visual Studio)
}
उम्र के लिए मेरे लिए ठीक काम करता है। जब मैं विजुअल स्टूडियो (जैसे एप्लिकेशन आदि में लॉग इन करना) के अंदर कुछ तर्क छोड़ देता हूं।
क्या यह नहीं लगता है [क्लिकऑन] (http://en.wikipedia.org/wiki/ClickOnce) का उपयोग किया जाता है (विजुअल स्टूडियो में "प्रकाशित" के रूप में छिपा हुआ)? यदि यह सामान्य [एमएसआई] (http://en.wikipedia.org/wiki/Windows_Installer) इंस्टॉलर बनाने के लिए एक सेटअप प्रोजेक्ट का उपयोग किया जाता है तो यह काम करेगा? –
DesignMode संपत्ति हमेशा सटीक नहीं होती है। हमने इस विधि का उपयोग किया है ताकि यह लगातार काम करता है:
protected new bool DesignMode
{
get
{
if (base.DesignMode)
return true;
return LicenseManager.UsageMode == LicenseUsageMode.Designtime;
}
}
आपकी कॉल का संदर्भ महत्वपूर्ण है। यदि कुछ परिस्थितियों में किसी ईवेंट में चल रहा है तो हमने IDE में DesignMode को झूठा कर दिया है।
आप इस का उपयोग कर सकते हैं:
protected static bool IsInDesigner
{
get { return (Assembly.GetEntryAssembly() == null); }
}
मैं इस विस्तार विधि का उपयोग करें:
internal static class ControlExtension
{
public static bool IsInDesignMode(this Control control)
{
while (control != null)
{
if (control.Site != null && control.Site.DesignMode)
return true;
control = control.Parent;
}
return false;
}
}
- 1. यह पता लगाने के लिए कि विंडोज
- 2. सी #: यह पता लगाने के लिए कि किस एप्लिकेशन पर ध्यान केंद्रित किया गया है
- 3. यह पता लगाने के लिए कि क्या विंडोज सी #
- 4. यह पता लगाने के लिए कि क्या कोई प्रोग्राम विजुअल स्टूडियो द्वारा चलाया गया था, विंडोज एक्सप्लोरर
- 5. यह पता लगाने के लिए कि पाइथन कोड डीबगर के माध्यम से निष्पादित किया जा रहा है?
- 6. सी # का उपयोग करना यह पता लगाने के लिए कि विंडोज इंस्टालर 4.5 स्थापित किया गया है
- 7. एएसपी.NET कोड यह पता लगाने के लिए कि आईआईएस "विंडोज प्रमाणीकरण" सक्षम है
- 8. वर्तमान में किस ऑब्जेक्ट पर ध्यान केंद्रित किया गया है यह पता लगाने के लिए कि
- 9. यह पता लगाने के लिए कि कोई उपयोगकर्ता PHP
- 10. यह पता लगाने के लिए कि मेमोरी लीक कहां है?
- 11. यह पता लगाने के लिए कि क्या जेएमएस कनेक्शन है?
- 12. यह पता लगाने के लिए कि क्या मैं विजुअल स्टूडियो 2008 के साथ कोड संकलित कर रहा हूं?
- 13. यह पता लगाने के लिए कि कौन से फ़ंक्शंस को रेखांकित नहीं किया गया था
- 14. यह पता लगाने के लिए कि कोई क्लिक() माउस किसी कोड द्वारा क्लिक या ट्रिगर किया गया है या नहीं?
- 15. यह पता लगाने के लिए कि कोई छवि बंडल के भीतर मौजूद है या नहीं?
- 16. यह पता लगाने के लिए कि क्या स्पिइट को pygame
- 17. यह पता लगाने के लिए कि मेरी साइट कहां है
- 18. यह पता लगाने के लिए कि खिड़की कोको
- 19. ProGuard के साथ एंड्रॉइड कोड obfuscation ... कैसे पता है कि यह obfuscated किया गया है?
- 20. यह पता लगाने के तरीके कि व्युत्पन्न कक्षा
- 21. यह पता लगाने के बाद कि उपयोगकर्ता आगे बढ़ने के बाद रुक गया है
- 22. यह पता लगाने के लिए कि HTML5 वीडियो इनलाइन
- 23. यह पता लगाने के लिए कि क्या एक ओएस एक्स एप्लिकेशन पहले से लॉन्च किया गया है
- 24. सी ++ विजुअल स्टूडियो 2010 एक्सई रीबेज किया गया है?
- 25. यह पता लगाने के लिए कि कोई वेबसाइट HSTS
- 26. यह पता लगाने के लिए कि क्या मेरे ऑब्जर्जेबल कोलेक्शन में कोई आइटम बदल गया है
- 27. यह पता लगाने के लिए कि find_package पैकेज (बूस्ट)
- 28. यह पता लगाने के लिए कि जावा जावास्क्रिप्ट
- 29. यह पता लगाने के लिए कि कोई प्रोग्राम उपप्रोसेस से क्रैश हो गया है या नहीं?
- 30. विजुअल स्टूडियो यह पता लगाता है कि हॉटकी को क्या आदेश दिया गया है
आप चाहते हैं इस जानकारी जानना चाहते हैं कि आपके कोड यह डिबग जा रहा है? यदि हां एक मैक्रो है जो आपको बताता है कि क्या आपके एप्लिकेशन से डीबगर जुड़ा हुआ है तो संदर्भित करें: http://stackoverflow.com/questions/2188201/is-there-a-way-to-detect-if-a-debugger-is -एटेड-टू-ए-प्रोसेस-से-सी –
सी # में आप इसका उपयोग कर सकते हैं: http://stackoverflow.com/questions/361077/c-clr-remote-debugger-how-to-wait-until-attached –