2010-09-10 12 views
5

मुझे एक यूआरएल निर्दिष्ट करके या आदर्श रूप से वेब ऐप के भीतर से पूर्ण-ट्रस्ट एप्लिकेशन को डीबग करने की ज़रूरत है, जिसे मैं इसे तैनात करने का इरादा रखता हूं।मैं VS2010 में प्रकाशित XBAP फ़ाइल को कैसे डिबग करूं?

  • चल रहा कमांड लाइन से "PresentationHost.exe -embedding", दृश्य स्टूडियो के माध्यम से संलग्न: मैं निम्नलिखित की कोशिश की है। आईडीई दिखाता है कि मेरे ब्रेकपॉइंट मान्य हैं जब तक कि मैं वास्तव में .xbap फ़ाइल लोड करने का प्रयास नहीं करता, जिस बिंदु पर यह दिखाता है कि कोई प्रतीक लोड नहीं होता है। मेरे ब्रेकपॉइंट्स में से कोई भी हिट नहीं है। मैंने कहीं और सिफारिशों के अनुसार ऐसा करने से पहले "mage -cc" की कोशिश की है।

  • प्रोजेक्ट के डीबग पैनल में हार्ड-कोडित यूआरएल तो F5। वैकल्पिक रूप से, "PresentationHost.exe -embedding -debug" और प्रक्रिया से संलग्न करें और फिर IE में .xbap लोड करें। निम्न त्रुटि में दोनों परिणाम जब पेज प्रकट होता है:

System.ArgumentException: यूआरआई प्रारूपों समर्थित नहीं हैं।

at System.IO.Path.NormalizePath(...) 
    at System.IO.FileStream.Init(...) 
    at System.IO.FileStream..ctor(...) 
    at System.Windows.Interop.ApplicationLauncherXappDebug.GetIdFromManifest(...) 
    at System.Windows.Interop.ApplicationLauncherXappDebug.GetApplicationIdentity() 
    at System.Windows.Interop.ApplicationLauncherXappDebug.Initialize() 
    at System.Windows.Interop.DocObjHost.MS.Internal.AppModel.IBrowserHostServices.Run(...) 

उत्तर

4

यह मिला। "PresentationHost.exe -embedding" काम करेगा, बशर्ते आप प्रकाशित होने के लिए .pdb फ़ाइल का चयन करें, जो डिफ़ॉल्ट रूप से नहीं है। यह मैंने जो देखा उससे पहले है, जहां एप वास्तव में लोड होने के बाद, डीबगर के प्रतीक होने लगते थे। स्पष्ट करने के लिए:

  • जाओ प्रकाशित करें टैब में परियोजना गुण
  • क्लिक करें पर "आवेदन फ़ाइलें ..."
  • चेक "सभी दिखाएं फ़ाइलें"
  • के लिए निष्पादन योग्य के लिए .pdb फ़ाइल का चयन करें शामिल हो।
  • पुनः प्रकाशित
  • PresentationHost.exe -embedding
  • की प्रक्रिया या डिबग टैब
  • एक ब्राउज़र में और xbap फ़ाइल पर नेविगेट लॉन्च वेब पेज से बाहर चलाने के लिए इस परियोजना स्थापित करने के लिए अनुलग्न करें, breakpoints होना चाहिए अब हिट करें
+0

धन्यवाद, लेकिन क्या आप समझा सकते हैं कि 'PresentationHost.exe -embedding' के साथ आपका क्या मतलब है, मेरे पास xbap में लिपटा हुआ एक Winform है और अटैचमेंट कर सकता है लेकिन ब्रेकपोइट्स को हिट नहीं कर सकता .. – Pogrindis

2

यदि आपके पास स्रोत कोड तक पहुंच है और आप स्थानीयहोस्ट पर तैनात हैं तो आप बस अपने कोड में System.Diagnostics.Debugger.Launch(); जोड़ सकते हैं। इससे आप अपने एक्सबीएपी का उपयोग कर रहे किसी भी प्रक्रिया के लिए वीएस से जुड़ सकते हैं।

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