يبدو أن برنامج ترخيص .NET (LC.Exe) يتجاهل محتويات التراخيص .licx على جهاز واحد ، ولكن ليس من جهة أخرى. لماذا ا؟
-
27-09-2019 - |
سؤال
معلومات أساسية: لقد قمت بإعداد حل .NET بسيط للغاية في VS2008 يحتوي على رمز كافي فقط لعرض تقرير ActivEreports في نافذة معاينة. يستخدم مكون Activereports licenses.licx
آلية لتقرير ما إذا كانت مرخصة بشكل صحيح أم لا. إذا لم يجد أي مفتاح ترخيص صالح ، فسيعرض رسالة بارزة على معاينة التقرير تفيد ، "هذه نسخة تقييم ، [بلاه بلاه بلاه إلخ]."
مشكلتي: لديّ نوعان من جهاز الكمبيوتر ، مع نفس الإصدارات من VS2008 و Activereports المثبتة. لدي تراخيص صالحة لكل تثبيت. الآن ، عندما أقوم بإنشاء حل على جهاز واحد ، أحصل على معاينة تقرير بدون رسالة لافتة التقييم ، بينما في الجانب الآخر ، يجمع الحل نفسه بالضبط إلى تطبيق يعرض رسالة التقييم.
ما اكتشفته حتى الآن: استخدام Reflector.net لقد اكتشفت أنه على الجهاز الثاني (الذي يعرض رسالة التقييم) ، مترجم الترخيص (LC.EXE
) يبدو بطريقة ما تجاهل خط ترخيص Activereports في licenses.licx
. لكنه لن يعرض أي خطأ أو رسالة تحذير على الإطلاق.
⇒ لذا ، يبقى هذا السؤال: تحت أي ظروف سوف LC.EXE
تقرر تجاهل خط النص من licenses.licx
عندما ينتج الإخراج MyApplication.licenses
مورد مضمن؟
ملاحظة: المشكلة هي ليس حل عن طريق حذف licenses.licx
ملف ثم إعادة إنشاءه عن طريق إضافة تقرير وهمية مؤقتًا إلى الحل. هذه الخدعة كثيرا ما ذكر لقضايا الترخيص المماثلة ، لكنها لا تعمل هنا. ال licenses.licx
يبدو أن محتويات الملف صالحة.
PPS: لست متأكدًا تمامًا مما إذا كان هذا سؤالًا فائضًا في التدفق أو سؤال للمستخدم الفائق.
المحلول
حسنًا - لا أستطيع أن أكون متأكدًا ، لكني أشك في سبب هذه المشكلة.
وأظن أن LC.EXE
سوف تحقق جميع عناصر التحكم المدرجة في licenses.licx
عندما يجمع هذا الملف. إذا حددت أي من عناصر التحكم المدرجة ، خلال هذا التحقيق ، أنه غير مرخص بشكل صحيح (لأي سبب من الأسباب ؛ على سبيل المثال ، لأن الترخيص مفقود حقًا ، أو بسبب تثبيت فاسد) دفق موارد الإخراج.
تحديث: بعد بضعة أسابيع ، ما زلت أعتقد أن هذا ما حدث. كما اتضح ، تحولت الجهاز الذي فشل الترخيص إلى تركيب فاسد من Activereports. بعد تشغيل الأداة المساعدة لإزالة ، حصلت Activereports على تثبيت جديد وترخيص يعمل الآن على كلا الجهازين.