سؤال

أحاول تصدير مكتبة التحكم في .dll للمطورين الآخرين في المكتب للاستهلاك.

يبدو الحل الأول الذي تم إنشاؤه مثل هذا:

الحل 1:
- MRI.Controls (مكتبة فئة)
- MRI.FMTool (تطبيق الويب)

MRI.FMTool المراجع MRI.Controls.

داخل MRI.Controls، لدي بعض JavaScript Webresources. يبدو أن MRI.FMTool يبدو أن Webresources على ما يرام، حيث تظهر جميع عمليات الويب الخاصة بي JavaScript أثناء وجودها عند تشغيل تطبيق MRI.FMTool Web.

لذلك، الآن كنت أحاول إنشاء حل بسيط لاستهلاك MRI.FMTool

الحل 2:
- MRI.Consumertest (تطبيق الويب)

أخذت أحدث mri.controls.dll وأضفته كمرجع إلى تطبيق MRI.Consumertest. يبدو أن جميع عناصر التحكم من MRI.Controls تعمل داخل MRI.Consumertest. Intellisense يعمل، وهي تجمع، لا توجد مشاكل.

ومع ذلك، عند تشغيله، فإن معظم ملفات Webresource.axd فارغة، فقط فارغة. ملف واحد Webresource.axd ليس فارغا، فهو ببساطة يقول "لا يمكن العثور على هذا المورد".

فيما يلي خصائص ملفات JavaScript داخل نافذة الخصائص:
بناء العمل: "مورد مضمن"
نسخ إلى دليل الإخراج: "نسخ دائما"

ما خطوة أنا في عداد المفقودين؟

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

المحلول 3

لقد لاحظت أن ملفات My Webresource CSS كانت جارية بشكل صحيح، ولكن لم يتم تحميل جافا سكريبت في Webresource في الحل الجديد.

لذلك، بدلا من استخدام system.web.ui.كلستاجريستانيغر تستخدم لتسجيل Webresources، لقد تحولت إلى استخدام system.web.ui.ScriptManager.. وبعد الآن الملفات تخرج من scriptmanager.axd. (بدلا من webresource.axd.). يبدو أن هذا يحل المشكلة.

الرمز القديم قبل الإصلاح:

public class ScriptManagerExtension : System.Web.UI.ScriptManager
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        Page.ClientScript.RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js");
    }
}

يستخدم Snippet Code أعلاه System.Web.ui.clientscriptManager

رمز جديد بعد الإصلاح:

public class ScriptManagerExtension : System.Web.UI.ScriptManager
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js");
    }
}

يستخدم Snippet Code أعلاه SYSTEM.WEB.UI.ScriptManager

من فهمي، تم تقديم ClientscriptManager في 2.0. أعتقد أن ScriptManager هو الطريقة الجديدة المحسنة 3.5 لإدارة البرامج النصية التي لديها وظيفة أكثر بكثير.

/ يقشر

نصائح أخرى

ربما تكون في عداد المفقودين [الجمعية: Webresource ("yernamespace.yourfile.js"، "نص / جافا سكريبت")] سمة]. Webresource.axd يحتاج إلى هذه السمة. يمكنك التحقق هذه مقالة KB للحصول على معلومات إضافية حول هذه المسألة.

هل تم تعيين الموارد جزءا من DLL؟

افتح الحل mri.controls وعرض خصائص ملفات موارد JavaScript الخاصة بك.
أعتقد أن هذا هو المكان الذي يمكن أن تكون المشكلة.

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