2009-12-04 13 views
14

मैं (मेरे विधानसभा में App_GlobalResources/Strings.resx संकलित करने के लिए और अंत में के लिए उपग्रह विधानसभाओं का उपयोग Strings.es.resx, Strings.fr.resx, आदि चाहते हैं ।), लेकिन निम्नलिखित त्रुटि तब होती है एक बार एप्लिकेशन प्रकाशित किया जाता है:ASP.NET MVC में संकलित वैश्विक संसाधनों का उपयोग कैसे करें

"।। फ़ाइल या विधानसभा 'App_GlobalResources' या अपनी निर्भरता से एक लोड नहीं कर सका प्रणाली निर्दिष्ट फ़ाइल नहीं मिल सकता है"

कदम पुन करने के लिए:

  1. एक नया ASP.NET MVC परियोजना बनाएँ।
  2. एक App_GlobalResources फ़ोल्डर और एक Strings.resx फ़ाइल जोड़ें।
  3. करने के लिए 'एंबेडेड संसाधन'
  4. के लिए एक स्ट्रिंग जोड़ें Strings.resx और HomeController.Index() में इसका इस्तेमाल करते हैं, उदाहरण के लिए फ़ाइल के निर्माण सेट कार्रवाई ViewData["Message"] = Strings.MyTest
  5. डिबग करने के लिए F5, ठीक काम करता है।
  6. आईआईएस पर प्रकाशित करें और (के बाद से Strings.resx प्रकाशन से बाहर रखा गया है) आप प्रकाशित साइट में उपरोक्त त्रुटि मिल जाएगा।

क्या एएसपी.नेट एमवीसी परियोजनाएं डीएल में संकलित स्ट्रिंग संसाधनों का उपयोग कर सकती हैं और यदि हां, तो मैं गलत क्या कर रहा हूं? String Resources

तो क्यों ResourceManager उन्हें नहीं मिल रहा है:


अद्यतन: मैं क्या परावर्तक में देखते हैं यहाँ है? क्या यह डिफ़ॉल्ट रूप से fallback to the main assembly नहीं है?

उत्तर

23

यहाँ एक अच्छा प्रारंभिक बिंदु http://odetocode.com/Blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

मैं सेटअप एक परियोजना तुम सिर्फ तरह का उल्लेख किया और ठीक एक ही त्रुटि मिली जब मैं IIS6 के लिए तैनात किया है। PublicResXFileCodeGenerator को Custom Tool और Custom Tool Namespace बदलने Resources स्कॉट के सुझावों के अनुसार करने के लिए इसे मंजूरी दे दी ठीक।

मैं App_GlobalResources को समाप्त करने के संबंध में स्कॉट के नेतृत्व का भी पालन करता हूं लेकिन मुझे यह ठीक काम करने के लिए मिला। यह व्यक्तिगत वरीयता का मामला हो सकता है।

+0

बहुत बढ़िया जवाब! बहुत अच्छा काम करता है। धन्यवाद। –

+0

_Great_ लिंक! धन्यवाद! –

+0

@ w0rd-driben, मैंने एक असेंबली 1 बनाया है जिसमें ग्लोबलसोर्स शामिल है और जब आप पोस्ट करते हैं तो सार्वजनिक है, लेकिन इस असेंबली का उपयोग किसी अन्य प्रोजेक्ट में करते समय और कोड का उपयोग करते समय: "<% $ संसाधन: सामान्य, कुछकी%>" काम नहीं कर रहा है ... कोई भी विचार? धन्यवाद – Mhmd

0

शायद एक और चीज है जो किसी को सार्वजनिकResXFileCodeGenerator के बारे में जानना चाहिए - यह फाइलों के साथ काम नहीं करता है जिसमें फ़ाइल नाम में एक से अधिक बिंदु है (http://social.msdn.microsoft.com/Forums/ru-RU/9412f049-acd8-4a77-b73a-f3810df18376/naming-resources-files-issue-aspnet-mvc-3?forum=dlr देखें)। तो Strings.es.resx के लिए codebehind, Strings.fr.resx, आदि खाली रहता है। आसान समाधान फाइलों का नाम बदलना है।

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