c# - مشكلة - نقطة الإيقاف لن يتم ضربها حاليًا. لم يتم تحميل أي رموز لهذا المستند في تطبيق Silverlight




مسح برنامج silverlight (20)

Goto Project Properties -> Build -> Advanced ...

في قسم "المخرجات" ، حدد "كامل" في القائمة المنسدلة معلومات التصحيح

حسنا ، ما لدي:

بدأت Visual Studio 2010 RC ، W7 x64 ، نوع مشروع جديد لتطبيق Silverlight. استضافة تطبيق Silverlight في مشروع تطبيق ويب ASP.NET. Silverlight الإصدار 3.0. تمت إضافة فئة LinqToSQL ، وخدمة WCF ، وتطبيق اختبار Winform (مشروع في الحل) وعدد قليل من الفصول (أيضًا كمشروعات في الحل).

أمس ، فجأة حصلت على "لن يتم ضرب نقطة توقف حاليا. لم يتم تحميل أي رموز لهذا المستند. " تظهر الرسالة في IDE ، ولكنها تؤثر فقط على Appliaction ويب ، يمكنني تصحيح Silverlight وتطبيق Winform.

ما حاولت / فعلت للتخلص من الرسالة:

  • إعادة تعيين إعدادات Visual Studio
  • إزالة كافة الملفات في مجلد "ملفات ASP.NET" \ Temporary (يوجد واحد لكل 32 بت / 64 بت وللإطار 2.0 و 4.0)
  • حاول التصحيح باستخدام خادم Visual Studio Integrated Web - عادةً ما أستخدم IIS ، في إخراج مشروع الحل قمت بحذف كل مجلدات obj و bin في كل مجلد مشروع
  • إنشاء حل جديد وإضافة جميع المشاريع لهذا الحل الجديد
  • حذف ملف الحل سو
  • إنشاء تطبيق ويب ASP.NET جديد لاختبار ما إذا كان مشكلة تثبيت VS => يمكنني تصحيح هذا المشروع / الحل الجديد
  • إعادة تشغيل الجهاز عدة مرات
  • إصلاح تثبيت vs.net
  • فعل IISReset
  • إزالة تطبيق الويب من IIS
  • استخدم زر إنشاء دليل ظاهري ضمن خصائص المشروع الخاصة بتطبيق الويب لإنشاء تطبيق ويب جديد في IIS
  • غيرت الإصدار الإطاري لكل مشروع من 3.5 إلى 4.0
  • افتح الحل على الجهاز الثاني => نفس السلوك
  • زحف Microsoft Connect لأخطاء / مشكلات مماثلة
  • قضى 7 ساعات.

لذلك ، هذا يحدث للمرة الثانية في حياتي. آخر مرة حلها عن طريق حذف مجلد ملفات ASP.NET المؤقتة ، ولكن هذه المرة أحتاج إلى مساعدتك.


إذا كنت تصحح مشروعًا على الويب ، فتأكد من تعيين سمة debug = "true" في ملف web.config:

<system.web>
    <compilation debug="true"   .../>

افتح عنوان url الخاص بتطبيق الويب من المتصفح ثم في VS.Net IDE use Tools -> AttachtoProcess

ثم نعلق على aspnet_wp.exe.

سيبدأ المصحح العمل


السبب وراء ما تواجهه هو أن PDBs ("PDB تعني قاعدة بيانات البرامج ، وهو تنسيق ملف خاص (تم تطويره بواسطة Microsoft) لتخزين معلومات تصحيح الأخطاء حول أحد البرامج) غير محدثة ، قد يكون هذا بسبب بعض الأسباب :

1- كما قال بيفان ، قد تكون تصحيح تطبيق آخر!

2- أنت تقوم بتصحيح نسخة أخرى من نفس التطبيق. على سبيل المثال ، قمت بإرفاق تطبيق تم إنشاؤه مسبقًا مع الإصدار الحالي من التعليمات البرمجية لتصحيح الأخطاء بدون (إعادة) بنائه.

تنظيف أو إعادة بناء الحل يحل مثل هذه المشاكل بالنسبة لي.

للتأكد من أن المشكلة ليست لك ، حاول تصحيح التطبيق نفسه مع VS 2008 (أخشى أنه قد يكون خطأ في VS 2010 - لا يزال بيتا!).


انقر بزر الماوس الأيمن على الحل -> خصائص

انظر تحت خصائص مشتركة -> مشروع بدء التشغيل

حدد مشاريع بدء التشغيل المتعددة

حدد إجراء البدء في المشاريع التي تحتاج إلى تصحيحها.


بالنسبة إلى تطبيق WPF الخاص بي ، قمت بحذف مجلد التطبيق ، وقمت بـ "الحصول على أحدث" من التحكم بالمصادر مرة أخرى ، وتم إعادة بنائها. جميع نقاط التوقف تعمل بشكل رائع الآن.


بالنسبة لي ، كانت المشكلة تتمثل في تمكين "تحسين الشفرة" في علامة التبويب "إنشاء" في إعدادات مشروعي.


تأكد من تشغيل البرنامج في وضع التصحيح وليس وضع RELEASE.


حاول تعيين Silverlight Application Project كمشروع بدء التشغيل: انقر بزر الماوس الأيمن على المشروع -> 'Set As Startup project. ثم اضغط F5 ومعرفة ما إذا كان يمكنك التقاط نقاط التوقف ...

حاول حذف بيانات التصفح / درجة الحرارة في متصفحك في كل مرة تقوم فيها بإجراء تغييرات على تطبيق Silverlight


حاولت إعادة تسمية ملف .pdb في المجلد obj\debug وفعلت حل نظيف وإعادة بناء.
قام بإنشاء ملف .pdb جديد وكنت قادراً على ضرب نقاط التوقف بشكل صحيح.


حكاية أخرى قد تكون مفيدة

لقد واجهت هذه المشكلة عندما كان أحد مشاريعي يستخدم مراجع الملف من مجلد مخرجات الإصدار. عندما تم وضع نتائج الإنشاء في مجلد "السلع" ، كانت هذه dlls الإصدار الكتابة فوق dlls Debug.

كان الحل هو التأكد في ملف csproj ، كان HintPath للمرجع الخاص بي

<HintPath>..\..\Core\Goods\$(Configuration)\MyFramework.dll</HintPath>

و لا

<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>


كان لي نفس المشكلة - فقدت الكثير من الوقت في محاولة للحصول على تصحيح العمل في Visual Studio.

انتهى الأمر إلى Nuget - كان لدي 3 إصدارات من Newtonsoft.Json (عبر 7 مشاريع C #). سيتم تجميع الحل ولكن لم يتم تصحيحه.

لقد أصلحت المشكلة من خلال تشغيل ما يلي في وحدة تحكم مدير الحزم في Nuget:

م> تحديث حزمة Newtonsoft.Json


كانت الحلول لنفس المشكلة في حالتي هي المجموعة التالية من الخطوات:

  1. الحل -> خصائص حدد مشاريع بدء التشغيل متعددة حدد بدء الإجراء على المشاريع التي تحتاج إلى تصحيح.
  2. إزالة الخدمة من مراجع الخدمة وتنظيف الحل.
  3. إعادة بناء مشروع الخدمة
  4. وأضاف مرة أخرى إلى مراجع الخدمة
  5. تنظيف الحل وإعادة بنائه.

كانت لدي مشكلة مشابهة باستثناء أن مشكلتي كانت سخيفة - كان لديّ مثالين على خادم الويب المدمج الذي يعمل ضمن منفذين مختلفين وكان لدي مشروعي -> خصائص -> ويب -> "عنوان URL للبدء" يشير إلى منفذ ثابت ولكن لم يكن تطبيق الويب يعمل بالفعل تحت هذا المنفذ. لذلك تم إعادة توجيه المتصفح إلى "عنوان URL للبدء" الذي أشار إلى 1539 ولكن تم تشغيل نسخة الأكواد / debug تحت المنفذ 50803.

لقد قمت بتغيير خادم الويب المدمج لتعمل تحت منفذ ثابت وقمت بتعديل "عنوان URL للبدء" الخاص بي لاستخدام هذا المنفذ أيضًا. project -> properties -> web -> "Servers" section -> "استخدم Visual Studio Development Server" -> منفذ معين


لإصلاح هذه المشكلة في Web.config ، يجب أن أضيف debug="true"

  <system.web>
    <compilation targetFramework="4.0" debug="true">

ما ساعدني في العثور على هذا الحل قد تم النظر إلى نوافذ الوحدات النمطية أثناء تصحيح الأخطاء ورأيت أن DLL ASP.NET الخاص بي تم تحميله: لم يتم إنشاء Binary مع معلومات التصحيح.


لقد قمت للتو بحل هذه المشكلة وفقًا لنشر تطبيقات Silverlight . (هذه الإجابة هي نسخة مكررة من البعض الآخر ، ولكن سأحاول شرحها بشكل أكثر شمولاً.)

المشكلة هي على الأرجح أن تطبيق Silverlight لا يتم نشره بشكل صحيح لتطبيق الويب الخاص بك على الإنشاء / بدء التشغيل. هذه مشكلة مرجعية - من السهل فهمها ولكنها ليست واضحة في المرة الأولى التي تواجهها.

كما هو الحال مع أي مرجع مشروع آخر ، يجب نسخ مخرجات المشروع المشار إليه إلى مجلد حاوية المشروع المرجعي من أجل التصحيح. بالنسبة لمكتبات الصف ، يحدث هذا عند النقر بزر الماوس الأيمن وتحديد "إضافة مرجع ...". بالنسبة إلى Silverlight ، يجب عليك إضافة مرجع من خلال خصائص المشروع.

  • انقر بزر الماوس الأيمن على المشروع الخاص بك ، واختر "خصائص"
  • حدد علامة التبويب "Silverlight Applications" على اليسار
  • اضغط على الزر "إضافة ..." وحدد مشروع Silverlight من مربع الحوار

يؤدي ذلك إلى إضافة مرجع إلى تطبيق Silverlight من تطبيق استضافة الويب الخاص بك ، ويضمن xap ملف xap إلى تطبيق الويب عند xap . وهذا يعني أن تطبيق Silverlight الحالي وملفات التصحيح فيه موجودة داخل التطبيق الذي تم تصحيحه ، وستتمكن من التنقل خلال الشفرة.


واجهت نفس المشكلة ، كنت أقوم بتصحيح مشروعي ، واضطررت إلى النقر بزر الماوس الأيمن على المشروع وتحديد "نسخة جديدة لتصحيح الأخطاء". أنا فقط بحاجة إلى القيام بذلك مرة واحدة ، ثم بعد ذلك عملت بشكل طبيعي.


واجهت نفس المشكلة ، وبعد googling ، وجدت حلين نموذجيين لهذا:

  1. تأكد من تنشيط المصحح Silverlight في مشروع .Web. افتح خصائص المشروع وحدد المصحح Silverlight تحت علامة التبويب "ويب".

  2. أعد تشغيل Visual Studio وحذف كافة المجلدات بن ومفاتيح.

لكن أيا من هذه كانت تعمل بالنسبة لي . ثم ذكر شخص ما بعيدًا على مؤشر ترابط لمحاولة استخدام IE كمتصفح بدلاً من ذلك. هذا جعل التصحيح و breakpoints العمل مرة أخرى!

تصحيح:

في وقت لاحق لقد كافحت مع IE9 لا يعمل ، لأنه يعلق على عملية خاطئة. بدلاً من إرفاق عملية IE الصحيحة يدويًا في كل مرة ، وجدت حلاً أنيقًا:

  • انقر بزر الماوس الأيمن فوق إحدى الصفحات التي تم إنشاؤها في مشروع .Web (.html أو .aspx)
  • انقر فوق "تصفح باستخدام ..."
  • تعيين IE كمتصفح افتراضي (سيؤثر فقط على اختيار Visual Studio للمتصفح)

الآن ، سيقوم Visual Studio بتشغيل IE عند تشغيل مشروع .Web وإرفاقه العملية الصحيحة. يجب أن يفعل ذلك.


واجهت نفس المشكلة ولكن في VS2013 لتطبيق الويب. بالنسبة لي ، كانت الإجابة هي تحديث تكوين البنية للحل: -

  1. انقر بزر الماوس الأيمن على الحل واختر خصائص
  2. حدد تكوين التصحيح
  3. حدد "التكوين" تحت "خصائص التكوين" في الركيزة
  4. تحقق من مربع "إنشاء" لكل مشروع تريد تصحيحه

وبمجرد أن قمت بذلك ، بدأت جميع نقاط التوقف الخاصة بي بالعمل.


ينمو هذا الخطأ بين الحين والآخر بالنسبة لي ، ويمكنني دائمًا تتبعه مرة أخرى إلى إعدادات المشروع للتجميع المعني. ليس لديك "الانتظار" حتى يفشل التعليمة البرمجية الخاصة بك في احترام نقطة فاصل أو حتى تعيين نقطة فاصل ، لمعرفة التجميعات التي تم تحميلها التجميعات.

عند تشغيل مشروع في وضع التصحيح ، سيتم إدراجه في نافذة الإخراج التي تحتوي على تجميعات للرموز كما هو موضح أدناه (قد تحتاج إلى فتح الصورة في علامة تبويب جديدة): T

لذلك في هذه الحالة ليس لدى BASD.Core.Data.dll رموز محملة. لذلك يمكنك بعد ذلك مقارنة إعدادات المشروع لهذا التجميع مع إعدادات التجميع الأخرى التي تمكنت من تحميل الرموز ، من أجل معرفة سبب قيام البعض والبعض الآخر بعدم تحميل الرموز.

"بالنسبة لي" ، ومع ذلك ، "كل" وقت يحدث هذا لأنه لم يتم إنشاء معلومات التصحيح. لذلك أقوم بفتح خصائص المشروع> إنشاء> متقدم في مشروع (C #).

لذا بالنسبة إلى Basd.Core.Data.dll أعلى أي رموز لم تكن إعدادات الإنشاء المتقدمة:

حيث أنه بالنسبة لـ Basd.Core.Configuration.dll أي تجميع حيث يمكنني تعيين نقطة توقف عندها:

لذلك أنا إخراج معلومات التصحيح في المشروع الأخير وليس في الأول ، وبالتالي قدرتي على الوصول إلى نقطة فاصل في Basd.Core.Configuration.dll

لاحظ أيضًا أنه لا يكفي ببساطة أن يكون لديك ملف .pdb في مجلد حاوية مشروع ل .dll محدد لأنه قد يكون قديماً وبالتالي لا يتم التقاطه بواسطة Visual Studio كملف رمز صالح لـ .dll كنت تحاول الدخول.

لاحظ أيضًا أن تغيير تكوينات التهيئة يمكن أن يغيّر إعدادات معلومات البناء وحيث يتم سحب الرموز منها.

(أدرك في هذه الحالة أنني في وضع الإصدار ولكن لا تزال الطريقة سارية)





iis