2009-04-08 11 views
10

मैं कार्यालय में अन्य डेवलपर्स के लिए एक .dll में नियंत्रण लाइब्रेरी निर्यात करने का प्रयास कर रहा हूं।WebResource.axd खाली या नहीं मिला

समाधान इस तरह मैं मूल बनाई दिखता है:

समाधान 1:
- Mri.Controls (कक्षा लाइब्रेरी)
- Mri.FmTool (वेब ​​अनुप्रयोग)

Mri.FmTool संदर्भ Mri.Controls।

एमआर.कंट्रोल के अंदर, मेरे पास कुछ जावास्क्रिप्ट वेब स्रोत हैं। Mri.FmTool वेब स्रोतों को ठीक से पढ़ता प्रतीत होता है, मेरे सभी जावास्क्रिप्ट वेब resouces प्रकट होते हैं जब उन्हें Mri.FmTool वेब ऐप चल रहा है।

तो, अब मैं Mri.FmTool

समाधान 2 उपभोग करने के लिए एक सरल उपाय बनाने के लिए कोशिश कर रहा था:
- Mri.ConsumerTest (वेब ​​अनुप्रयोग)

मैं नवीनतम Mri.Controls ले लिया .dll और इसे Mri.ConsumerTest एप्लिकेशन के संदर्भ के रूप में जोड़ा। प्रतीत होता है कि Mri.Controls के सभी नियंत्रण Mri.ConsumerTest के अंदर काम कर रहे हैं। Intellisense काम कर रहा है, यह संकलित, कोई मुद्दा नहीं है।

हालांकि, इसे चलाने पर, अधिकांश WebResource.axd फ़ाइलें खाली हैं, बस खाली हैं। एक WebResource.axd फ़ाइल खाली नहीं है, यह बस कहती है "यह संसाधन नहीं मिला।"
कार्रवाई बिल्ड: "एम्बेडेड संसाधन"
आउटपुट निर्देशिका को कॉपी:

यहाँ गुण विंडो के अंदर जावास्क्रिप्ट फ़ाइलों के गुण हैं "कॉपी हमेशा"

क्या कदम मुझे याद आ रही?

+0

इस प्रश्न पूछने के लिए धन्यवाद! मेरे पास * वही * प्रश्न नहीं था, लेकिन मुझे एक ही समस्या थी। हालांकि "बिल्ड एक्शन: एंबेडेड रिसोर्स" प्रॉपर्टी के बारे में पता नहीं था। धन्यवाद! – Matt

उत्तर

2

मैंने देखा कि मेरी वेब रिसोर्स सीएसएस फ़ाइलें ठीक से लोड हो रही थीं, लेकिन जावास्क्रिप्ट नए समाधान में वेब संसाधन में लोड नहीं हो रहा था।

तो, सिस्टम.Web.UI का उपयोग करने के बजाय। क्लाइंटस्क्रिप्ट प्रबंधक वेब स्रोतों को पंजीकृत करने के लिए प्रयुक्त होता है, मैंने System.Web.UI का उपयोग करने के लिए स्विच किया। स्क्रिप्ट मैनेजर। अब फाइलें ScriptManager.axd (WebResource.axd के बजाय) से बाहर आ रही हैं। यह समस्या को ठीक करने लग रहा था।

पुरानी फिक्स पहले कोड:

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"); 
    } 
} 

कोड:

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"); 
    } 
} 

कोड स्निपेट के ऊपर फिक्स के बाद System.Web.UI.ClientScriptManager

नए कोड का उपयोग करता है स्निपेट के ऊपर System.Web.UI.ScriptManager

का उपयोग करता है

मेरी समझ से, ClientScriptManager 2.0 में पेश किया गया था। मेरा मानना ​​है कि स्क्रिप्ट मैनेजर स्क्रिप्ट प्रबंधित करने का नया बेहतर 3.5 तरीका है जिसमें बहुत अधिक कार्यक्षमता है।

/शग

+0

इम यकीन नहीं मैं का पालन करें, आप एक छोटे पोस्ट कर सकते हैं आपके मतलब का कोड स्निपेट? –

+0

कोड के टुकड़े जोड़ा – taco

+0

प्रासंगिकता का एक * स्थिर * समारोह है: 'ScriptManager.RegisterClientScriptResource()' - मुझे कुछ समय लिया इससे पहले कि मैं कि पता लगा। – vdboor

2

क्या संसाधन डीएलएल का हिस्सा बनने के लिए सेट हैं?

समाधान खोलें Mri.Controls & अपनी जावास्क्रिप्ट संसाधन फ़ाइलों के गुणों को देखें।
मुझे लगता है कि समस्या यह हो सकती है।

+1

मेरे जावास्क्रिप्ट फ़ाइलें Mri.Controls में निम्नलिखित गुण होते हैं - निर्माण कार्य: एंबेडेड संसाधन; आउटपुट निर्देशिका में कॉपी करें: हमेशा – taco

+1

THANx कॉपी करें। यह मेरी समस्या थी। पुरानी पुनरुत्थान परियोजना - किसी कारण से सभी संसाधन फ़ाइलों को एम्बेडेड संसाधन के स्थिर में सामग्री पर रीसेट कर दिया गया। –

3

आप शायद [असेंबली: वेब रिसोर्स ("YourNameSpace.YourFile.js", "टेक्स्ट/जावास्क्रिप्ट") विशेषता खो रहे हैं। WebResource.axd को उस विशेषता की आवश्यकता है। आप मामले पर अतिरिक्त जानकारी के लिए this KB आलेख देख सकते हैं।

+0

मैं पहले से ही [विधानसभा: WebResource ("Mri.Controls.Resources.Scripts.Core.js", "पाठ/जावास्क्रिप्ट")] था मेरी विधानसभा की जानकारी में .... – taco

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