2011-11-09 10 views
9

मैं एक powershell स्क्रिप्ट है और मैं [Reflection.Assembly] के माध्यम से :: लोड एक DLL लोडडीबग सी # डीएल? क्या यह भी संभव है?

मैं कि dll के स्रोत कोड में brakepoints जगह, घड़ियां आदि

powershell को अटैच किया जा रहा जोड़ना चाहते हैं प्रक्रिया काम नहीं कर सका (वास्तव में मैंने शक्तियों की कोशिश की है)। संलग्न करने के लिए कोई अन्य प्रक्रिया नहीं है। कोई विचार? एक बार अपवाद (यह मेरा अपवाद है, इसलिए ऐसा होना चाहिए) वीएस में दिखाई दिया लेकिन मैं इसे पुन: पेश नहीं कर सका।

+2

मैंने निश्चित रूप से powerhell.exe प्रक्रिया को जोड़कर सी # कोड डीबग किया है। मैं कभी भी आईएसई के साथ ऐसा नहीं कर सकता, लेकिन मुझे नहीं पता कि वह भी क्यों काम नहीं करेगा। – OldFart

उत्तर

8

एक विकल्प के रूप में, आप अपने पुस्तकालय में एक सहायक वर्ग बना सकते हैं:

namespace Something { 
    public static class DebugHelper { 
     public static void AttachDebugger() { 
      System.Diagnostics.Debugger.Launch(); 
     } 
    } 
} 

उसके बाद, आप PowerShell से उस विधि कॉल कर सकते हैं, और आप डिबगर संलग्न मिल जाएगा।

+2

मैंने देखा कि कभी-कभी यह काम नहीं करता है। वीएस लॉन्च करता है लेकिन अपवाद पकड़ा नहीं जाता है। ध्यान दें कि मैंने इस लाइन का उपयोग सीधे बिजली के खोल से किया था: [System.Diagnostics.Debugger] :: लॉन्च() – naeron84

+2

मेरा विचार [Something.DebugHelper] :: AttachDebugger() का उपयोग करना था, इसलिए आपके कोड में डीबगर है , और फिर ब्रेकपॉइंट्स आदि को जोड़ना आसान है, लेकिन शायद आपका समाधान भी आसान है। –

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