2012-08-07 23 views
12

मैं स्नैरल को सूचनाएं भेजने के लिए Snarl C# API का उपयोग कर रहा हूं।मुझे त्रुटि क्यों मिल रही है CS0246: प्रकार या नामस्थान नाम नहीं मिला?

अब मैं SnarlNetwork.cs नामक फ़ाइल में ऊपर यूआरएल की सामग्री और मेरी test.cs फ़ाइल की सामग्री बचाया है कर रहे हैं:

using SnarlNetworkProtocol; 
using System; 
class test 
{ 
    public static void Main(String[] args) 
    { 
     SNP snarl_object = new SNP(); 
     string hostname = "localhost"; 
     string hostport = "9887"; 
     string appName = "Spotify"; 

     bool val = snarl_object.register(hostname, hostport, appName); 

     if (val == true) 
     { 
      string title = "hello"; 
      string message = "world"; 
      string timeout = "5"; 
      bool newval = snarl_object.notify(hostname, hostport, appName, null, title, message, timeout); 

      if (newval == true) 
      { 
       Console.WriteLine("sucessfull"); 

      } 
     } 
    } 

} 

अब जब मैं का उपयोग कर csc test.cs मैं मेरी test.cs फ़ाइल संकलन करने की कोशिश निम्न त्रुटि:

C:\Users\Noob\csharp>csc test.cs 
Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.4926 
for Microsoft (R) .NET Framework version 3.5 
Copyright (C) Microsoft Corporation. All rights reserved. 

test.cs(1,7): error CS0246: The type or namespace name 'SnarlNetworkProtocol' could not be found (are you missing a using directive or an assembly reference?) 

तो, क्या मैं गलत यहाँ कर रहा हूँ क्योंकि मेरे हिसाब से मैं किसी भी using directive लापता नहीं कर रहा हूँ।

उत्तर

11

यह समस्या है। आपको कुछ चाहिए:

C:\Users\Noob\csharp>csc test.cs /r:SnarlNetwork.dll 

(या जो भी असेंबली कहा जाता है)।

वैकल्पिक रूप से, अगर आप इसे एक अलग पुस्तकालय के रूप में नहीं मिला है, बस दोनों फ़ाइलों संकलन:

C:\Users\Noob\csharp>csc test.cs SnarlNetwork.cs 

आप एक विधानसभा संकलित नहीं किया है लेकिन करने के लिए चाहते हैं, आप उपयोग कर सकते हैं:

csc /target:library /out:SnarlNetwork.dll SnarlNetwork.cs 

csc Test.cs /r:SnarlNetwork.dll 

(वास्तव में, आउटपुट फ़ाइल को निर्दिष्ट इस विशेष मामले में अनावश्यक है, लेकिन यह अभी भी स्पष्ट नहीं है ...)

+0

धन्यवाद। इसने काम कर दिया। – RanRag

+0

उत्तर के रूप में चिह्नित करें? –

+0

@ जेम्सस्ड: मैं लेकिन स्टैक ओवरफ्लो कहूंगा, 'आप 2 मिनट में जवाब स्वीकार कर सकते हैं' – RanRag

7

संपादित करें: हे मेरे ध्यान न दें, अपने दृश्य स्टूडियो नहीं का उपयोग कर

आप अपने प्रोजेक्ट के संदर्भ में जोड़ दिया है?

बात की इस तरह के रूप में:

enter image description here

+1

यह अभी भी हमारे लिए विजुअल स्टूडियो से कम परिचित लोगों के लिए उपयोगी उत्तर है। – David

2

जब मैं एक कथन का उपयोग है, लेकिन विधानसभा कि नाम स्थान को परिभाषित करता है को संदर्भित करने को भूल गए हैं यह आमतौर पर मेरे लिए होता है।

लेकिन आपके मामले में, जैसा कि आपके प्रोजेक्ट में किसी फ़ाइल में नामस्थान परिभाषित किया गया है, तो आप snarlnetwork.cs फ़ाइल के बारे में संकलक को बताना भूल गए हैं।

C:\Users\Noob\csharp>csc test.cs 

आप नहीं जोड़ा है DLL के लिए एक संदर्भ:

देखें csc compiler examples

+0

मेरे फ़ोल्डर में केवल 'SnarlNetwork.cs' और 'test.cs' फ़ाइल नहीं है। क्या मैं कुछ भूल रहा हूँ। – RanRag

3

यह डु हो सकता है .NET फ्रेमवर्क के "क्लाइंट प्रोफाइल" के लिए ई। .NET के "पूर्ण संस्करण" का उपयोग करने का प्रयास करें।

1

मुझे यह त्रुटि एक एमवीसी परियोजना पर थी। और एक लंबे शोध के बाद मुझे पता चला कि मुख्य परियोजना में संदर्भित कुछ वर्गों वाली .cs फ़ाइल में बिल्ड एक्शन "सामग्री" पर सेट किया गया था ...

इसे बदलने के बाद "सामग्री" -> "संकलन "त्रुटि गायब हो गई।

0

मुझे एक ही त्रुटि थी जब प्रयुक्त सीएस फ़ाइल प्रोजेक्ट फ़ोल्डर के अंदर स्थित थी, लेकिन इसका संदर्भ नहीं दिया गया था।मूल परियोजना के csproj। इंटेलिजेंस इस फ़ाइल को प्रोजेक्ट फ़ोल्डर के अंदर देखता है, लेकिन कंपाइलर इसे .csproj

0

में अनुपलब्ध संदर्भ के कारण नहीं देखता है। मैंने System.Web के संदर्भ को जोड़कर इस समस्या का समाधान किया है।

2

मैंने परियोजना अनुप्रयोग सेटिंग्स में लक्ष्य ढांचे को अद्यतन करके इस समस्या का समाधान किया है। प्रोजेक्ट .NET फ्रेमवर्क संस्करण 4.5.1 के साथ संकलित कर रहा था लेकिन संदर्भित डीएलएल को संस्करण 4.6.1 के साथ संकलित किया गया था। तो मेरे प्रोजेक्ट संस्करण को अपडेट किया है। enter image description here

+0

धन्यवाद youuuuuuuuuuuu –

7

मैं .NET फ्रेमवर्क 4.5 उपयोग कर रहा था, लेकिन मेरे नए पुस्तकालय .NET Framework 4.5.2 था और मैं एक ही मुद्दा मिल गया है जब मैं का निर्माण करने की कोशिश की। मैंने अपनी परियोजना को 4.5 से 4.5.2 (मेरी लाइब्रेरी के समान) से अपडेट करके हल किया।

0

मुझे यह त्रुटि भी अनुपलब्ध संदर्भ के कारण मिली है। कारण मुझे नोटिस नहीं किया गया क्योंकि Resharper एक उपयोग और संदर्भ जोड़ने की पेशकश करता है। उपयोग करने वाले सफलताओं को जोड़ना (लेकिन यह ग्रे को हाइलाइट किया गया है), लापता कक्षाओं के कामकाज (कभी-कभी) की सिंटैक्स हाइलाइटिंग, लेकिन संदर्भ जोड़ना चुपचाप विफल रहता है।

मैन्युअल रूप से संदर्भ जोड़ते समय एक त्रुटि पॉप अप होती है, यह बताते हुए कि संदर्भ जोड़ने में विफल क्यों होता है (परिपत्र संदर्भ)। Resharper इस त्रुटि को जीयूआई पर पास नहीं किया था।

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