يشير 3.5 asp.net إلى مشروع مع مرجع تجميع يلقي توقيع / خطأ اسم واضح في اختبار الوحدة

StackOverflow https://stackoverflow.com/questions/4846718

سؤال

لدي مرجع إلى تجميع MySQL.Data 5.2.3 في طبقة بيانات ، رائع. لدي حاليًا تطبيق وحدة تحكم صغير داخل نفس الحل الذي يشير إلى طبقة البيانات هذه فقط والتي تتصل بشكل جيد. بعد ذلك ، قمت بإنشاء مشروع اختبار وحدة (أيضًا في نفس الحل) وأشرت إلى مشروع طبقة البيانات نفسه ، ومنه حصلت على:

أسلوب الاختبار LTTests.WrapperTest.LoginTest طرح استثناء: System.IO.FileLoadException: تعذر تحميل الملف أو التجميع 'MySql.Data، Version= 5.2.3.0، Culture= محايد، PublicKeyToken= c5687fc88969c44d' أو واحد من تبعياتها. ولم يتسن التحقق قوي توقيع الاسم. ربما تم العبث بالتجميع ، أو تم تأخير توقيعه ولكن لم يتم توقيعه بالكامل باستخدام المفتاح الخاص الصحيح. (استثناء من HRESULT: 0x80131045).

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

الاستثناء من طبقة البيانات وليس من الاختبار (لكل المكدس) لذا يبدو الأمر كما لو أن الاختبار يستدعي طريقة الطبقة (duh) وطبقة البيانات تتقيأ ولكن ليس لوحدة التحكم؟

شكرًا

هل كانت مفيدة؟

المحلول

هذه ليست الإجابة عن سبب وجود خطأ ولكنها طريقة محتملة لاكتشافه:

يمكنك استخدام "عارض سجل ارتباط التجميع" (Fuslogvw.exe) الذي ينتمي إلى dotnet sdk لمعرفة ما تم تحميله ولماذا.

إذا تم تمكين التسجيل ، فيمكنه إظهار التجميعات التي تم تحميلها من أي دليل وأي تجميع تسبب في تحميلها.

للحصول على تفاصيل ، راجع http:// msdn.microsoft.com/en-us/library/e74a18c4(v=vs.80).aspx

لذلك قد يكون هناك إصدار مختلف من MySql.Data موجود ورسالة الخطأ تعني أن رقم الإصدار الذي تم العثور عليه ليس هو الرقم الذي يتوقعه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top