समस्या का सामना करना पड़ रहा हूँ के रूप में निम्नानुसार है:ResourceMap त्रुटि नहीं मिला
मैं एक सेवा कनेक्शन संपुटित करने के लिए एक पोर्टेबल वर्ग पुस्तकालय विकसित किया है। इस कक्षा पुस्तकालय के अंदर एक संसाधन.resw फ़ाइल है जिसमें तार हैं। इन तारों को केवल कक्षा पुस्तकालय के तरीकों से बुलाया जाता है (उदाहरण के लिए ToString() विधियों को ओवरराइड करने के लिए)।
जैसा कि मैंने कहा कि यह एक पोर्टेबल क्लास लाइब्रेरी है। यदि मैं इसे किसी डीएलएल के रूप में संदर्भित करता हूं, या किसी अन्य समाधान के अंदर एक प्रोजेक्ट के रूप में भी, यह सही ढंग से बनाया और संकलित हो जाता है। तब मैं एक फोन अपने आवेदन के भीतर इस पुस्तकालय का एक विधि का उपयोग करते हैं, कहते हैं कि
ClientFacadeConnector connector = new ClientFacadeConnector();
ICollection<SearchResult> results = null;
string message = string.Empty;
if (maxResults != -1) //Search with max Results
{
try
{
if (!contextQuery.Trim().Equals(string.Empty))
{
results = await connector.GetConnected().SearchAsync(contextQuery, query, maxResults);
message = "Search with ContextQuery " + contextQuery + ", Query " + query + ", max results " + maxResults.ToString();
}
else
{
results = await connector.GetConnected().SearchAsync(query, maxResults, true);
message = "...using normal Query search, Query " + query + ", max results " + maxResults.ToString();
}
}
catch (IQserException ex)
{
message = ex.Message;
}
}
if (results != null)
{
ICollection<LocalSearchResult> contentResults = new List<LocalSearchResult>();
foreach (SearchResult s in results)
{
var q = s.ToString();
var contentItem = await connector.GetConnected().GetContentAsync(s.ContentId);
LocalSearchResult lContent = new LocalSearchResult(contentItem);
lContent.Score = s.Score;
lContent.Relevance = s.Relevance;
lContent.MarkFullText(query);
contentResults.Add(lContent);
}
बिंदु जहाँ मैं फोन s.ToString() विधि, मैं कोई त्रुटि मिलती है "संसाधन मानचित्र नहीं मिला" पर।
व्याख्या करने के लिए जहां इस से आता है:
public override string ToString()
{
StringBuilder buf = new StringBuilder(AppResources.GetResources("InstrSearchResultContent"));
if (ContentId != -1)
{
buf.Append(AppResources.GetResources("StringContent") + " ID:" + ContentId.ToString() + " | ");
}
else
{
buf.Append(AppResources.GetResources("StringNo") + AppResources.GetResources("StringContent") + "ID" + " | ");
}
...
संसाधन फ़ाइल resources.resw कहा जाता है और किया जाता है:
public static class AppResources
{
private static ResourceLoader resourceLoader;
static AppResources()
{
// Load local file Resources.resw by default
resourceLoader = new ResourceLoader();
}
public static string GetResources(string key)
{
if (string.IsNullOrEmpty(key))
throw new ArgumentNullException("key");
return resourceLoader.GetString(key);
}
}
और विधि ओवरराइड toString() के अंदर वहाँ कोड है कि इस प्रकार दिखता है डिफ़ॉल्ट resw फ़ाइल है जो संसाधन लोडर कॉल करता है अगर कोई अन्य नहीं कहा जाता है।
आश्चर्यजनक रूप से पर्याप्त है, अगर मैं स्थानीय रूप से क्लाइंट एप्लिकेशन के अंदर संसाधन फ़ाइल की प्रतिलिपि बनाता हूं, तो क्लास लाइब्रेरी संसाधन फ़ाइल और सब कुछ काम करने के लिए सभी कॉलों द्वारा इसे सही ढंग से संदर्भित किया जाता है।
इस कक्षा पुस्तकालय को समाप्त होने पर एक एसडीके माना जाता है। क्या मुझे संसाधन फ़ाइल को अलग से वितरित करने की आवश्यकता है?
ऐसी समस्या मैंने कभी सामान्य कक्षा पुस्तकालयों और resx फ़ाइलों के साथ अनुभव नहीं किया है। Resw मुझे क्रिप्स दे रहा है ..
अभी भी वही त्रुटि प्राप्त कर रहा है। क्या हमें इससे पहले कुछ शुरू करने की ज़रूरत है? – hellodear
मुझे नहीं लगता कि यह बहिष्कृत है। मुझे अब 2017 में ऐसा कोई संदेश नहीं मिला है। यदि आप स्ट्रिंग्स डिफ़ॉल्ट पथ से अलग पथ का उपयोग करते हैं तो स्ट्रिंग पैरामीटर का उपयोग किया जाता है, मुझे लगता है कि – batmaci
** संसाधन लोडर.गेटफॉरकंटेंट व्यू() ** के साथ मुझे एक ही त्रुटि मिल रही है ("संसाधन मानचित्र नहीं मिला")। ** नया संसाधन लोडर ("असेंबली/रिसोर्सफाइल") ** समाधान काम कर रहा है, लेकिन एक बहिष्करण चेतावनी के साथ। – jannikb